2021. 1. 17. 19:43γπ Web
λ³Έ ν¬μ€ν μ μ°μν νμ λ€, κΉμν λμ 'λͺ¨λ κ°λ°μλ₯Ό μν HTTP μΉ κΈ°λ³Έ μ§μ' κ°μλ₯Ό μκ° ν μ 리ν κΈμ λλ€.
1. μΊμ κΈ°λ³Έ λμ
-> μλμ κ°μ΄ star μ΄λ―Έμ§λ₯Ό μμ²νλ©΄ 1.1Mbyte μ©λμ λ°μ΄ν°κ° μ μ‘λλ€ (ν€λ + μ΄λ―Έμ§ μ©λ).
-> μΊμκ° μμ λ, λλ²μ§Έ μμ²μ νλ€λ©΄ λκ°μ΄ 1.1Mbyte μ©λμ λ°μ΄ν°κ° μ μ‘λλ€ (κ°μ μμ²μ΄λ, κ°μ μ©λ μ μ‘)
2. μΊμκ° μμ λ,
-> μλ²μΈ‘μ λ°μ΄ν°κ° λ³κ²½λμ§ μμλ κ³μ λ€νΈμν¬λ₯Ό ν΅ν΄ λ°μ΄ν°λ₯Ό λ€μ΄λ°μμΌ νλ€.
-> λλ¦¬κ³ λΉμΈλ©°, λΈλΌμ°μ λ‘λ© μλκ° λλ¦¬λ€ = λλ¦° μ¬μ©μ κ²½ν (slow ux)
3. μΊμ μ μ©ν λ,
-> 1.1Mbyteμ λ°μ΄ν°λ₯Ό μΊμ μ μ₯μμ μ μ₯νλ€.
-> λλ²μ§Έ μμ²μμ μΉ λΈλΌμ°μ λ λ€νΈμν¬λ₯Ό νμ§ μκ³ , λΈλΌμ°μ μΊμμμ 곧 λ°λ‘ λ°μ΄ν°λ₯Ό μ‘°νν μ μλ€.
4. Cache-control: Max-age = 60
-> 60μ΄ λμλ§ μ ν¨ν μΊμ.
-> 60μ΄ μ΄ν λΆν°λ, μλ²μμ μλ‘ λ°μ΄ν°λ₯Ό λ°μμ μΊμμ μ μ₯ν΄μΌνλ€ (μΊμ κ°±μ ).
-> serverμ μΊμμ λ°μ΄ν°κ° λ€λ₯Έ κ²½μ°λ λ°μν μ μμμ μΈμ§νμ (μλ² λ°μ΄ν°μ μ λ°μ΄νΈ κ²½μ°)
5. μΊμ μκ° μ΄κ³ΌμΌ λ,
- 1) μλ²μμ κΈ°μ‘΄ λ°μ΄ν°λ₯Ό λ³κ²½
- 2) μλ²μμ κΈ°μ‘΄ λ°μ΄ν°λ₯Ό λ³κ²½νμ§ μμ -> μκ° μ΄κ³Όλ μΊμ λ°μ΄ν°μ μλ² λ°μ΄ν°κ° κ°λ€λ μ¬μ€μ νμΈν μ μλ€λ©΄, κΈ°μ‘΄ μΊμμ λ°μ΄ν°λ₯Ό μ¬μ¬μ© κ°λ₯
6. κ²μ¦ ν€λ μΆκ° < 첫 λ²μ§Έ μμ² >
-> Headerμ last-modified κ²μ¦ ν€λ μΆκ°
-> λ°μ΄ν°κ° λ§μ§λ§μ μμ λ μκ° νμ
7. κ²μ¦ ν€λ μΆκ° < λ λ²μ§Έ μμ² >
8. κ²μ¦ ν€λ(last-modified)μ μ‘°κ±΄λΆ μμ²(if-modified-since)
-> 304 not Modified + ν€λ λ©ν μ λ³΄λ§ μλ΅ λλ€. ( λ°λ x )
-> μΊμμ λ©ν μ 보λ μλ²κ° λ³΄λΈ μλ΅ ν€λ μ λ³΄λ‘ κ°±μ λλ€.
-> ν΄λΌμ΄μΈνΈλ μΊμμ μ μ₯λμ΄ μλ λ°μ΄ν° μ¬νμ©
-> κ²°κ³Όμ μΌλ‘, λ€νΈμν¬ λ€μ΄λ‘λκ° λ°μνμ§λ§, μ©λ μ μ ν€λ μ λ³΄λ§ λ€μ΄λ‘λνλ€ => λ§€μ° μ€μ©μ μΈ ν΄κ²°μ±
9. ETag (Entity Tag)
-> μΊμμ© λ°μ΄ν°μ μμμ κ³ μ ν λ²μ μ΄λ¦μ λ¬μλλ€. ex) ETag: 'v1.0', ETag: 'v2.0'
-> λ°μ΄ν°κ° λ³κ²½λλ©΄ μ΄ μ΄λ¦μ λ°κΎΈμ΄ λ³κ²½ν¨ (Hashλ₯Ό λ€μ μμ±)
- ex) ETag: 'aaaa' --> ETag: 'bbbb'
10. ETag λμ μ리-κ²°κ³Ό
-> ETagλ§ λ³΄λ΄μ κ°μΌλ©΄ μ μ§, λ€λ₯΄λ©΄ λ€μ λ€νΈμν¬λ₯Ό νλ€. (key-value λΉκ΅ νμ)
-> μΊμ μ μ₯μμμ λ³΄λΈ ETagμ μλ²μ ETagλ μ΄λ¦μ κ°μ§λ§, hash λ°©μμ΄κΈ°μ, valueκ°μ΄ λ€λ₯Ό μ μλ€(λ°μ΄ν°κ° μ λ°μ΄νΈ λμ μ).
-> μ¦, ETagλ§ μλ²μ λ³΄λ΄ μΌμΉ/λΆμΌμΉ μ¬λΆλ₯Ό νμΈ ν μ μκ³ , 그리νμ¬ μΊμμ μ΄ λ‘μ§μ μλ²μμ μμ ν κ΄λ¦¬ν μ μκ² λλ€.
11. μΊμ μ μ΄ ν€λ
- Cache-control: μΊμ μ μ΄
- Pragma: μΊμ μ μ΄ (νμ νΈν)
- Expires: μΊμ μ ν¨ κΈ°κ° (νμ νΈν): μΊμ λ§λ£μΌμ μ νν λ μ§λ‘ μ§μ -> μ§κΈμ λ μ μ°ν cache-control: max-age κΆμ₯
12. Cache-control
-> max-age: μΊμ μ ν¨ μκ°, μ΄ λ¨μ
-> no-cache: λ°μ΄ν°λ μΊμν΄λ λμ§λ§, νμ origin μλ²μ κ²μ¦νκ³ μ¬μ©
-> no-store: λ°μ΄ν°μ λ―Όκ° μ 보 μμΌλ©΄ μ μ₯νμ§ μλλ€.
13. μ‘°κ±΄λΆ μμ² ν€λ
- if-match, if-none-match: ETag κ° μ¬μ©
- if-modified-since, if unmodified-since: last-modified κ° μ¬μ©
- ETagμ last-modified λμ μλ‘ λ°λλλ€.
14. νλ‘μ μΊμ
-> μμ£Ό μ¬μ©λλ λ°μ΄ν°λ₯Ό proxy μΊμ μλ²μ λ°°μΉ
-> 0.5μ΄ κ±Έλ € λ―Έκ΅ μλ²κΉμ§ κ°μ§ μκ³ , νλ‘μ μλ²μμ 0.1μ΄λ§μ ν΄κ²°νλ€.
-> cache-control: public -> μλ΅μ΄ public μΊμμ μ μ₯λμ΄λ λ¨
-> cache-control: private -> μλ΅μ΄ ν΄λΉ μ¬μ©μλ§μ μν κ² ( private μΊμμ μ μ₯ν΄μΌνλ€(κΈ°λ³Έκ°) )
15. μΊμ 무ν¨ν
-> νμ€ν μΊμ 무ν¨ν: μ€μν μ 보λ λ―Όκ° λ°μ΄ν°λ₯Ό λ€λ£° κ²½μ° νμ€ν μΊμλ₯Ό 무ν¨ν μ€μ ν΄μΌνλ€.
16. Cache-control
- no-cache: λ°μ΄ν°λ μΊμν΄λ λμ§λ§, νμ originμλ²μ κ²μ¦νκ³ μ¬μ©
- no-store: λ°μ΄ν°μ λ―Όκ°ν μ λ³΄κ° μμΌλ―λ‘, μ μ₯νλ©΄ μλλ€.
- must-revalidate: μΊμ λ§λ£ ν μ΅μ΄ μ‘°νμ origin μλ²μ κ²μ¦νκ³ μ¬μ© -> origin μλ² μ κ·Ό μ€ν¨μ λ°λμ μ€λ₯κ° λ°μν΄μΌν¨ (504, Gateway Timeout)
17. no-cacheμ must-revalidateμ μ°¨μ΄
-> no-cache
-> must-revalidate
'π Web' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
ν¬μλ νλ‘μ μ 리λ²μ€ νλ‘μ (forward proxy, reverse proxy) (1) | 2021.08.24 |
---|---|
HTTP 401(Unauthorized), 403(Forbidden) μ°¨μ΄ (0) | 2021.06.20 |
7. HTTP ν€λ 1 - μΌλ° ν€λ (0) | 2021.01.11 |
5. HTTP λ©μλ νμ© (0) | 2021.01.03 |
4. HTTP λ©μλ (0) | 2021.01.03 |