Web/HTTP

HTTP 헀더 - μΊμ‹œμ™€ ν”„λ‘μ‹œ μΊμ‹œ, λ¬΄νš¨ν™”

 

 

πŸ“’ μΊμ‹œ μ œμ–΄ 헀더

πŸ“ Cache-Control: μΊμ‹œ μ œμ–΄

• "Cache-Control: max-age"  -> μ΄ˆ λ‹¨μœ„ μΊμ‹œ 유효 μ‹œκ°„ (보톡 ꡉμž₯히 길게 μ„€μ •)
• "Cache-Control: no-cache"  -> λ°μ΄ν„°λŠ” μΊμ‹œν•΄λ„ λ˜μ§€λ§Œ, μ€‘κ°„μ˜ ν”„λ‘μ‹œ μΊμ‹œ μ„œλ²„μ—μ„œλŠ” 아무것도 ν•˜λ©΄ μ•ˆλ˜κ³  항상 원(origin) μ„œλ²„μ—μ„œ κ²€μ¦ν•˜κ³  μ‚¬μš©
• "Cache-Control: no-store" -> 데이터에 λ―Όκ°ν•œ 정보가 μžˆμœΌλ―€λ‘œ μ €μž₯ν•˜λ©΄ μ•ˆλ¨ (λ©”λͺ¨λ¦¬μ—μ„œ μ‚¬μš©ν•˜κ³  μ΅œλŒ€ν•œ λΉ¨λ¦¬ μ‚­μ œ)

 

πŸ“ Pragma: μΊμ‹œ μ œμ–΄(ν•˜μœ„ ν˜Έν™˜)

• Pragma: no-cache 

• HTTP 1.0 ν•˜μœ„ ν˜Έν™˜

* 거의 μ‚¬μš©ν•˜μ§€ μ•ŠμŒ

 

πŸ“ Expires: μΊμ‹œ μœ νš¨ κΈ°κ°„(ν•˜μœ„ ν˜Έν™˜)

• expires: Mon, 01 Jan 1990 00:00:00 GMT 

• μΊμ‹œ λ§Œλ£ŒμΌμ„ μ •ν™•ν•œ λ‚ μ§œλ‘œ μ§€μ • 

• HTTP 1.0 λΆ€ν„° μ‚¬μš© 

• μ§€κΈˆμ€ 더 μœ μ—°ν•œ μ΄ˆλ‹¨μœ„μΈ Cache-Control: max-age ꢌμž₯
• Cache-Control: max-age와 ν•¨κ»˜ μ‚¬μš©ν•˜λ©΄ ExpiresλŠ” λ¬΄μ‹œ

 

 

πŸ“’ ν”„λ‘μ‹œ μΊμ‹œ

πŸ“Œ ν”„λ‘μ‹œ μ„œλ²„

: 거리가 λ¨Ό 원 μ„œλ²„(origin μ„œλ²„) λŒ€μ‹  λΉ λ₯΄κ³  κ°€κΉŒμš΄ ν”„λ‘μ‹œ μΊμ‹œ μ„œλ²„λ₯Ό μ‚¬μš©ν•¨

 

πŸ“Œ Cache-Control μΊμ‹œ μ§€μ‹œμ–΄(directives) - 기타

• "Cache-Control: public" -> 응닡이 public μΊμ‹œμ— μ €μž₯λ˜μ–΄λ„ 됨
• "Cache-Control: private" -> 응닡이 ν•΄λ‹Ή μ‚¬μš©μžλ§Œμ„ μœ„ν•œ κ²ƒμž„, ν”„λ‘μ‹œ μΊμ‹œκ°€ μ•„λ‹Œ private μΊμ‹œμ— μ €μž₯ν•΄μ•Ό 함(κΈ°λ³Έκ°’)
• "Cache-Control: s-maxage" -> ν”„λ‘μ‹œ μΊμ‹œμ—λ§Œ μ μš©λ˜λŠ” max-age
• Age: 60 (HTTP ν—€λ”)
• μ˜€λ¦¬μ§„ μ„œλ²„μ—μ„œ μ‘λ‹΅ ν›„ ν”„λ‘μ‹œ μΊμ‹œ λ‚΄μ— λ¨Έλ¬Έ μ‹œκ°„(초)

 

 

πŸ“’ μΊμ‹œ λ¬΄νš¨ν™”

μΊμ‹œλ₯Ό μ μš©ν•˜μ§€ μ•Šμ•„λ„ μ›Ή λΈŒλΌμš°μ €κ°€ μž„μ˜λ‘œ μΊμ‹œλ₯Ό μ €μž₯ν•  μˆ˜λ„ 있음. κ·Έλž˜μ„œ 무쑰건 ν™•μ‹€ν•˜κ²Œ μΊμ‹œκ°€ λ˜μ§€ μ•Šλ„λ‘ λ¬΄νš¨ν™”ν•˜λ €λ©΄?

 

πŸ“ Cache-Control: no-cache, no-store, must-revalidate

* must-revalidate: μΊμ‹œ 만료 ν›„ 졜초 μ‘°νšŒμ‹œ 원 μ„œλ²„μ— 검증해야함. 원 μ„œλ²„ μ ‘κ·Ό μ‹€νŒ¨μ‹œ λ°˜λ“œμ‹œ 였λ₯˜κ°€ λ°œμƒν•΄μ•Όν•¨. - 504(Gateway Timeout)

 

πŸ“ Pragma: no-cache (HTTP 1.0 ν•˜μœ„ ν˜Έν™˜)

 

근데 no-cache와 must-revalidate 뭐가 λ‹€λ₯΄μ§€???

πŸ“Œ no-cache vs must-revalidate

λ§Œμ•½ ν”„λ‘μ‹œ μΊμ‹œμ™€ 원 μ„œλ²„μ˜ λ„€νŠΈμ›Œν¬κ°€ λ‹¨μ ˆλœλ‹€λ©΄? 원 μ„œλ²„ μ ‘κ·Ό λΆˆκ°€!?

 

πŸ“ no-cache: μ› μ„œλ²„μ— μ ‘κ·Όν•  수 μ—†λŠ” 경우 μΊμ‹œ μ„œλ²„ 섀정에 λ”°λΌμ„œ μΊμ‹œ 데이터λ₯Ό λ°˜ν™˜ν•  수 있음.

* Error or 200 OK (였λ₯˜ λ³΄λ‹€λŠ” 였래된 데이타라도 λ³΄μ—¬μ£Όμž)

 

πŸ“ must-revalidate: 원 μ„œλ²„μ— μ ‘κ·Όν•  수 μ—†λŠ” 경우, 항상 였λ₯˜κ°€ λ°œμƒν•΄μ•Ό 함.

* 504 Gateway Timeout (맀우 μ€‘μš”ν•œ λˆκ³Ό κ΄€λ ¨λœ κ²°κ³Όλ‘œ μƒκ°ν•΄λ³΄μž)

 

κ·Έλž˜μ„œ, λ”λ”μš± ν™•μ‹€νžˆ ν•˜λ €λ©΄ must-revalidateκΉŒμ§€ λ„£μ–΄μ£Όλ©΄ μ•„μ£Όμ•„μ£Ό ν™•μ‹€νžˆ μΊμ‹œ λ¬΄νš¨ν™” κ°€λŠ₯