πŸͺ„ Programming

[HTTP] Cache-Control 헀더

ColorFilter 2025. 3. 31. 22:44
λ°˜μ‘ν˜•

Cache-Control 헀더: ν΄λΌμ΄μ–ΈνŠΈμ™€ 쀑간 μ„œλ²„(Proxy, CDN λ“±)κ°€ μ–΄λ–€ λ°©μ‹μœΌλ‘œ 응닡을 캐싱할지 μ§€μ •ν•˜λŠ” 헀더(νŠΉμ • 응닡을 μ–Όλ§ˆλ™μ•ˆ, μ–΄λ–»κ²Œ 캐싱할지 μ§€μ •).

 

정적인 λ¦¬μ†ŒμŠ€


잘 λ³€ν•˜μ§€ μ•ŠλŠ” 정적인 λ¦¬μ†ŒμŠ€λŠ” μž₯κΈ°κ°„ μΊμ‹œ
Cache-Control: public, max-age=31536000, immutable
  • public: λΈŒλΌμš°μ €μ™€ 쀑간 μ„œλ²„(ν”„λ‘μ‹œ, CDN λ“±) λͺ¨λ‘ 응닡을 캐싱할 수 μžˆλ„λ‘ ν—ˆμš©.
  • max-age=31536000: μΊμ‹œ 생성 ν›„ 1λ…„(31, 536,000초) λ™μ•ˆ fresh μƒνƒœ μœ μ§€.
  • immutable: ν•œ 번 μΊμ‹œ 된 ν›„ λ³€κ²½λ˜μ§€ μ•ŠμŒ(λΆˆν•„μš”ν•œ μž¬κ²€μ¦ μš”μ²­ λ°©μ§€).

 

 

동적인 λ¦¬μ†ŒμŠ€


동적인 λ¦¬μ†ŒμŠ€λŠ” 항상 μ΅œμ‹  μƒνƒœλ₯Ό μœ μ§€ν•  수 μžˆλ„λ‘ 맀번 μ„œλ²„μ— μž¬κ²€μ¦
Cache-Control: no-cache, must-revalidate
  • no-cache: μΊμ‹œ 데이터 μ‚¬μš© μ „ 맀번 원본 μ„œλ²„μ— μž¬κ²€μ¦.
  • must-revalidate: 만료된 μΊμ‹œ λ°μ΄ν„°λŠ” 원본 μ„œλ²„ μž¬κ²€μ¦ 없이 μ‚¬μš© λΆˆκ°€.

 

 

기타 Cache-Control μ§€μ‹œμ–΄


πŸ’‘ freshλŠ” μΊμ‹œ 된 응닡이 아직 λ§Œλ£Œλ˜μ§€ μ•Šμ•„ μœ νš¨ν•œ μƒνƒœλ₯Ό λ‚˜νƒ€λ‚΄κ³ , stale은 μΊμ‹œ 된 응닡이 λ§Œλ£Œλ˜μ–΄ μ΅œμ‹  μƒνƒœκ°€ μ•„λ‹˜μ„ λ‚˜νƒ€λƒ„. stale-while-revalidate μ§€μ‹œμ–΄ μ‚¬μš© μ‹œ stale μΊμ‹œκ°€ μž¬μ‚¬μš©λ  수 있음.

 

  • private: 응닡을 μ‚¬μš©μž(λΈŒλΌμš°μ € λ“±) μΊμ‹œμ—λ§Œ μ €μž₯ν•˜κ³ , 쀑간 μ„œλ²„(CDN λ“±)μ—λŠ” μ €μž₯ν•˜μ§€ μ•Šλ„λ‘ μ§€μ‹œ.
  • no-store: λΈŒλΌμš°μ €μ™€ 쀑간 μ„œλ²„ λͺ¨λ‘ 응닡을 μ €μž₯ν•˜μ§€ μ•Šλ„λ‘ μ§€μ‹œ(λ―Όκ°ν•œ 정보 μ²˜λ¦¬μ— 적합).
  • stale-while-revalidate: 만료된 μΊμ‹œλ₯Ό μž„μ‹œλ‘œ μ œκ³΅ν•˜κ³ , λ°±κ·ΈλΌμš΄λ“œμ—μ„œ μž¬κ²€μ¦/μΊμ‹œ μ—…λ°μ΄νŠΈ μˆ˜ν–‰.
  • max-stale: ν΄λΌμ΄μ–ΈνŠΈκ°€ 만료된 응닡을 ν—ˆμš©ν•˜λŠ” μ‹œκ°„. 예λ₯Ό λ“€μ–΄ ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ max-stale=60 으둜 μš”μ²­ν•˜λ©΄ μΊμ‹œ 된 응닡이 만료된 ν›„ μ΅œλŒ€ 60μ΄ˆκΉŒμ§€λŠ” ν—ˆμš©ν•œλ‹€λŠ” 것을 λ‚˜νƒ€λƒ„. κ°’ 없이 max-stale만 μ‚¬μš©ν•˜λ©΄ 만료된 응닡도 μ‹œκ°„μ œν•œ 없이 λ°›μ•„λ“€μΈλ‹€λŠ” 의미.
  • min-fresh: ν΄λΌμ΄μ–ΈνŠΈκ°€ λ°›λŠ” 응닡이 μ§€μ • μ‹œκ°„ λ™μ•ˆ fresh ν•˜λ„λ‘ μš”κ΅¬. 예λ₯Ό λ“€μ–΄ min-fresh=30 으둜 μš”μ²­ν•˜λ©΄ μ΅œμ†Œ 30초 λ™μ•ˆ fresh μƒνƒœλ‘œ μœ μ§€ν•  수 μžˆλŠ” μ‘λ‹΅λ§Œ λ°›κ² λ‹€λŠ” 의미.
λ°˜μ‘ν˜•