πŸ”¬Computer Science/λ„€νŠΈμ›Œν¬

TIL) 검증 헀더, Cache-Control, μΊμ‹œ μ§€μ‹œμ–΄ 정리, ν”„λ‘μ‹œ μ„œλ²„λž€?

hellohailie 2022. 7. 13. 15:42

 

μ›Ή μΊμ‹œ

μ›Ή μΊμ‹œλ₯Ό 검증할 수 μžˆλŠ” μ—¬λŸ¬ 헀더

ν”„λ‘μ‹œ μΊμ‹œ

 

- μΊμ‹œ(cache)λŠ” 컴퓨터 κ³Όν•™μ—μ„œ λ°μ΄ν„°λ‚œ 값을 미리 볡사해 λ†“λŠ” μž„μ‹œ μž₯μ†Œμ΄λ‹€. 

- μ›Ήμ—μ„œλ„ λ™μΌν•œ μš”μ²­μ˜ 경우 같은 데이터λ₯Ό λ‹€μ‹œ λ‹€μš΄λ‘œλ“œν•˜μ§€ μ•Šκ³  이λ₯Ό μ›Ή μΊμ‹œλ‘œ μ €μž₯ν•΄μ„œ λΉ λ₯΄κ²Œ 뢈러올 수 μžˆλ‹€. 

- κ°œμΈ 컴퓨터에 μ €μž₯ν•˜λŠ” 프라이빗 μΊμ‹œ & μ—¬λŸ¬ μœ μ €μ—κ²Œ κ³΅ν†΅μ μœΌλ‘œ λ³΄μ—¬μ§€λŠ” λ°μ΄ν„°μ˜ 경우 ν”„λ‘μ‹œ μ„œλ²„μ— λ³„λ„λ‘œ μΊμ‹œλ₯Ό μ €μž₯ν•΄μ„œ μ‚¬μš©μž κ²½ν—˜μ„ ν–₯μƒμ‹œν‚¬ 수 μžˆλ‹€. 

 

 


HTTP 헀더 - μΊμ‹œμ™€ κ΄€λ ¨λœ 

 

if) μΊμ‹œ(λ°μ΄ν„°λ‚˜ 값을 미리 볡사해 λ†“λŠ” μž„μ‹œ μž₯μ†Œ)κ°€ 없을 경우 {

μ•žμ˜ μ‚¬λ‘€μ²˜λŸΌ λ™μΌν•œ 이미지λ₯Ό μš”μ²­ν•˜λŠ” 데 λ„€νŠΈμ›Œν¬λ₯Ό 톡해 같은 데이터λ₯Ό 또 λ‹€μš΄λ°›μ•„μ•Όν•œλ‹€. 

}

κ²°κ³Ό

βž₯ μš©λŸ‰μ΄ 클수둝 λΉ„μš©μ΄ 컀지고 λΈŒλΌμš°μ €μ˜ λ‘œλ”© 속도가 λŠλ €μ§„λ‹€. 

βž₯ 느린 μ‚¬μš©μž κ²½ν—˜ 제곡

 

 

if) μΊμ‹œ(λ°μ΄ν„°λ‚˜ 값을 미리 볡사해 λ†“λŠ” μž„μ‹œ μž₯μ†Œ)κ°€ μžˆλŠ” 경우 {

κ³„μ‚°μ΄λ‚˜ μ ‘κ·Ό μ‹œκ°„ 없이 더 λΉ λ₯Έ μ†λ„λ‘œ 데이터에 μ ‘κ·Όν•  수 μžˆλ‹€. 

}

βž₯ μΊμ‹œλŠ” μΊμ‹œμ˜ μ ‘κ·Ό μ‹œκ°„μ— λΉ„ν•΄ μ›λž˜ 데이터λ₯Ό μ ‘κ·Όν•˜λŠ” μ‹œκ°„μ΄ 였래 κ±Έλ¦¬λŠ” κ²½μš°λ‚˜ 값을 λ‹€μ‹œ κ³„μ‚°ν•˜λŠ” μ‹œκ°„μ„ μ ˆμ•½ν•˜κ³  싢은 κ²½μš°μ— μ‚¬μš©ν•œλ‹€. 

 

λΈŒλΌμš°μ €μ— μΊμ‹œλ₯Ό μ €μž₯ν•  λ•Œ 헀더에 cache-control 속성을 톡해 μΊμ‹œκ°€ μœ νš¨ν•œ μ‹œκ°„μ„ 지정할 수 μžˆλ‹€. 

ex) Cache-Control: max-age = 60

πŸ‘‰ 60초 λ™μ•ˆμ€ ν•΄λ‹Ή μΊμ‹œκ°€ μœ νš¨ν•˜λ‹€.

응닡을 λ°›μ•˜μ„ λ•Œ λΈŒλΌμš°μ € μΊμ‹œμ— ν•΄λ‹Ή 응닡 κ²°κ³Όλ₯Ό μ €μž₯ν•˜λ©° μ΄λŠ” 60초 κ°„ μœ νš¨ν•˜λ‹€. 

 

if) μΊμ‹œλ₯Ό μ μš©ν•˜λŠ”λ° μΊμ‹œ μ‹œκ°„μ΄ μ΄ˆκ³Όλ˜μ§€ μ•Šμ•˜μ„ 경우 {

μœ νš¨ν•œ μΊμ‹œμ΄λ―€λ‘œ ν•΄λ‹Ή μΊμ‹œμ—μ„œ 데이터λ₯Ό κ°€μ Έμ˜¨λ‹€.

}

 

κ²°κ³Ό

βž₯ μΊμ‹œ 덕뢄에 μΊμ‹œ κ°€λŠ₯ μ‹œκ°„λ™μ•ˆ λ„€νŠΈμ›Œν¬λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šμ•„λ„ λœλ‹€. 

βž₯ λΉ„μ‹Ό λ„€νŠΈμ›Œν¬ μ‚¬μš©λŸ‰μ„ 쀄일 수 μžˆλ‹€. 

βž₯ λΈŒλΌμš°μ € λ‘œλ”© 속도가 빨라, λΉ λ₯Έ μ‚¬μš©μž κ²½ν—˜μ„ μ œκ³΅ν•œλ‹€. 

 

if) μΊμ‹œλ₯Ό μ μš©ν•˜λŠ”λ° μΊμ‹œ μ‹œκ°„μ΄ μ΄ˆκ³Όν•œ 경우 {

λ‹€μ‹œ μ„œλ²„μ— μš”μ²­ν•˜κ³  데이터λ₯Ό 응닡받고, μΊμ‹œλ₯Ό κ°±μ‹ ν•œλ‹€. 

}

βž₯ μ΄λ•Œ λ‹€μ‹œ λ„€νŠΈμ›Œν¬ λ‹€μš΄λ‘œλ“œκ°€ λ°œμƒν•œλ‹€. 

 

응닡 κ²°κ³Όλ₯Ό λΈŒλΌμš°μ €κ°€ λ Œλ”λ§ν•˜λ©΄ λΈŒλΌμš°μ € μΊμ‹œλŠ” κΈ°μ‘΄ μΊμ‹œλ₯Ό μ§€μš°κ³  μƒˆλ‘œμš΄ μΊμ‹œλ‘œ 데이터λ₯Ό μ—…λ°μ΄νŠΈν•œλ‹€. πŸ‘‰ μΊμ‹œ 유효 μ‹œκ°„μ΄ λ‹€μ‹œ μ΄ˆκΈ°ν™”λœλ‹€. 

 


μΊμ‹œλ₯Ό μ œμ–΄ν•  수 μžˆλŠ” 검증 헀더 & 쑰건뢀 μš”μ²­

 

πŸ€”λ§Œμ•½ μΊμ‹œ μœ νš¨μ‹œκ°„μ΄ μ§€λ‚¬μ§€λ§Œ, 변경이 μ—†λ‹€λ©΄ κΈ°μ‘΄ 데이터λ₯Ό 이λ₯Ό κ²€μ¦ν•˜κ³  μ‚¬μš©ν•˜λŠ” 방법이 μžˆμ„κΉŒ??πŸ€”

 

검증 헀더 Last Modifiedλ₯Ό μ΄μš©ν•΄μ„œ μΊμ‹œμ˜ μˆ˜μ •μ‹œκ°„, 데이터가 λ§ˆμ§€λ§‰μœΌλ‘œ μˆ˜μ •λœ μ‹œκ°„ 정보λ₯Ό 헀더에 ν¬ν•¨ν•œλ‹€. 

βž₯ 응닡 κ²°κ³Όλ₯Ό μΊμ‹œμ— μ €μž₯ν•  λ•Œ 데이터 μ΅œμ’… μˆ˜μ •μΌλ„ μ €μž₯λœλ‹€. 

 

πŸ‘‰ μΊμ‹œ μœ νš¨μ‹œκ°„μ΄ μ΄ˆκ³Όλ˜λ”λΌλ„ If-Modified-Since 헀더λ₯Ό μ΄μš©ν•΄μ„œ 쑰건뢀 μš”μ²­μ„ ν•  수 μžˆλ‹€. 

 

Last-Modified & If-Modified-Since μž‘λ™λ°©μ‹

 

1. 데이터가 μˆ˜μ •λ˜μ—ˆλŠ”μ§€ 검증

2. μˆ˜μ •λ˜μ§€ μ•Šμ•˜λ‹€λ©΄ μ„œλ²„μ—μ„œ ν΄λΌμ΄μ–ΈνŠΈλ‘œ λ°”λ””λ₯Ό μ œμ™Έν•œ HTTP ν—€λ”λ§Œ 전솑 

(μ„œλ²„μ˜ ν•΄λ‹Ή 자료의 μ΅œμ’… μˆ˜μ •μΌκ³Ό λΉ„κ΅ν•΄μ„œ 데이터가 μˆ˜μ •μ΄ μ•ˆλ˜μ—ˆμ„ 경우 응닡 λ©”μ‹œμ§€μ— 이λ₯Ό λ‹΄μ•„μ„œ μ•Œλ €μ€€λ‹€.

μ΄λ•Œ HTTP BodyλŠ” 응닡 데이터가 μ—†μœΌλ©° μƒνƒœ μ½”λ“œλŠ” 304 Not Modified둜 λ³€κ²½λœ 것이 μ—†λ‹€λŠ” λœ»μ΄λ‹€. 전솑 데이터에 λ°”λ””κ°€ 빠쑌기 λ•Œλ¬Έμ— ν—€λ”λ§Œ ν¬ν•¨λœ 0.1M만 μ „μ†‘λœλ‹€. )

3. λΈŒλΌμš°μ € μΊμ‹œμ—μ„œ 응닡 κ²°κ³Όλ₯Ό μž¬μ‚¬μš©, 헀더 메타데이터 λ˜ν•œ κ°±μ‹ 

4. λΈŒλΌμš°μ €λŠ” μΊμ‹œμ—μ„œ μ‘°νšŒν•œ 데이터λ₯Ό λ Œλ”λ§

 

 

Last-Modified & If-Modified-Since

πŸ‘‰ ν΄λΌμ΄μ–ΈνŠΈμ—μ„œλŠ” ν•΄λ‹Ή 응닡을 받은 λ’€ μΊμ‹œλ₯Ό κ°±μ‹ ν•΄μ£Όκ³  λ‹€μ‹œ 일정 μ‹œκ°„ λ™μ•ˆ μœ νš¨ν•˜κ²Œ λœλ‹€. 

πŸ‘‰ ν΄λΌμ΄μ–ΈνŠΈλŠ” μΊμ‹œμ— μ €μž₯λ˜μ–΄ μžˆλŠ” 데이터λ₯Ό μž¬ν™œμš©ν•œλ‹€. 

πŸ‘‰ κ²°κ³Όμ μœΌλ‘œ λ„€νŠΈμ›Œν¬ λ‹€μš΄λ‘œλ“œκ°€ λ°œμƒν•˜μ§€λ§Œ μš©λŸ‰μ΄ 적은 헀더 μ •λ³΄λ§Œ λ‹€μš΄λ‘œλ“œ

πŸ‘‰ πŸ‘‰ 맀우 μ‹€μš©μ μ΄λ‹€. 

 

단점 

 

- 1초 미만 λ‹¨μœ„λ‘œ μΊμ‹œ 쑰정이 λΆˆκ°€λŠ₯ν•˜λ‹€.

- λ‚ μ§œ 기반의 λ‘œμ§μ„ μ‚¬μš©ν•œλ‹€. 

- 데이터λ₯Ό μˆ˜μ •ν•΄μ„œ λ‚ μ§œκ°€ λ‹€λ₯΄μ§€λ§Œ, 같은 데이터λ₯Ό μˆ˜μ •ν•΄μ„œ 데이터 κ²°κ³Όκ°€ 같은 경우 λͺ»μ“΄λ‹€. 

- μ„œλ²„μ—μ„œ λ³„λ„μ˜ μΊμ‹œ λ‘œμ§μ„ κ΄€λ¦¬ν•˜κ³  싢은 경우 λͺ»μ“΄λ‹€. 

ex) μŠ€νŽ˜μ΄μŠ€λ‚˜ μ£Όμ„μ²˜λŸΌ 크게 영ν–₯이 μ—†λŠ” λ³€κ²½μ—μ„œ μΊμ‹œλ₯Ό μœ μ§€ν•˜κ³  싢은 경우

 

 


ETag & If-None-Match 검증 헀더 (Last-Modified & If-Modified-Since 보닀 κ°„λ‹¨ν•œ 방식)

 

ETag(entity tag)

- μΊμ‹œμš© 데이터에 μž„μ˜μ˜ κ³ μœ ν•œ 버전 이름을 달아둠

- 데이터가 λ³€κ²½λ˜λ©΄ 이 이름을 λ°”κΏ”μ„œ λ³€κ²½ν•œλ‹€. (hash λ‹€μ‹œ 생성)

- λ‹¨μˆœν•˜κ²Œ ETag만 λ³΄λ‚΄μ„œ κ°™μœΌλ©΄ μœ μ§€, λ‹€λ₯΄λ©΄ λ‹€μ‹œ λ°›λŠ” 방식

 

μ„œλ²„μ—μ„œ 헀더에 ETagλ₯Ό μž‘μ„±ν•΄μ„œ μ‘λ‹΅ν•˜κ³ , ν΄λΌμ΄μ–ΈνŠΈμ˜ μΊμ‹œμ—μ„œ ν•΄λ‹Ή ETag 값을 μ €μž₯ν•œλ‹€. 

 

μ„œλ²„μ—μ„œ μ™„μ „νžˆ μΊμ‹œλ₯Ό μ»¨νŠΈλ‘€ν•˜κ³  싢은 경우 ETagλ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€. 

 

ETag & If-None-Match μž‘동 방식

 

1. 데이터가 μˆ˜μ •λ˜μ—ˆλŠ”μ§€ ETagλ₯Ό μ΄μš©ν•΄μ„œ κ²€μ¦ν•œλ‹€. 

2. μˆ˜μ •λ˜μ§€ μ•Šμ•˜λ‹€λ©΄ λ°”λ””λ₯Ό μ œμ™Έν•œ HTTP ν—€λ”λ§Œ μ „μ†‘ν•œλ‹€. 

3. λΈŒλΌμš°μ € μΊμ‹œμ—μ„œ 응닡 κ²°κ³Όλ₯Ό μž¬μ‚¬μš©, 헀더 메타데이터도 κ°±μ‹ ν•œλ‹€. 

 

4. λΈŒλΌμš°μ € μΊμ‹œμ—μ„œλŠ” 응닡 κ²°κ³Όλ₯Ό μž¬μ‚¬μš©ν•˜κ³  헀더 데이터λ₯Ό κ°±μ‹ ν•œλ‹€. 

 

λ§Œμ•½ μΊμ‹œ μ‹œκ°„μ΄ μ΄ˆκ³Όλ˜μ–΄ λ‹€μ‹œ μš”μ²­μ„ ν•΄μ•Όν•˜λŠ” 경우, μ΄λ•Œ ETag 값을 κ²€μ¦ν•˜λŠ” If-None-Matchλ₯Ό μš”μ²­ 헀더에 μž‘μ„±ν•΄μ„œ 보낸닀. 

μ„œλ²„μ—μ„œ 데이터가 λ³€κ²½λ˜μ§€ μ•Šμ•˜μ„ 경우, ETagλŠ” λ™μΌν•˜κΈ°μ— If-None-MatchλŠ” 거짓이 λœλ‹€.

πŸ‘‰ μ„œλ²„μ—μ„œ 304 Not Modifiedλ₯Ό μ‘λ‹΅ν•˜λ©° μ΄λ•Œ μ—­μ‹œ HTTP BodyλŠ” μ—†λ‹€. 

 

 

정리

λ‹¨μˆœν•˜κ²Œ ETag만 λ³΄λ‚΄μ„œ κ°™μœΌλ©΄ μœ μ§€, λ‹€λ₯΄λ©΄ λ‹€μ‹œ λ°›λŠ” 방식

μΊμ‹œ μ œμ–΄ λ‘œμ§μ„ μ„œλ²„μ—μ„œ μ™„μ „νžˆ 관리

ν΄λΌμ΄μ–ΈνŠΈλŠ” λ‹¨μˆœνžˆ 이 값을 μ„œλ²„μ— 제곡 (ν΄λΌμ΄μ–ΈνŠΈλŠ” μΊμ‹œ λ©”μ»€λ‹ˆμ¦˜μ„ λͺ¨λ¦„)

ex) μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 배포 주기에 λ§žμΆ°μ„œ ETag κ°±μ‹ , 베타 μ˜€ν”ˆ 기간인 3μΌλ™μ•ˆ 파일이 λ³€κ²½λ˜μ–΄λ„ ETagλ₯Ό λ™μΌν•˜κ²Œ μœ μ§€

 

 

μ‹€μ œλ‘œλŠ” ETag, last-modified λ‘˜ λ‹€ 같이 μ“΄λ‹€. 
κ·Έ μ΄μœ λŠ” ν˜Ήμ‹œλΌλ„ λ“€μ–΄μžˆμ§€ μ•Šμ„ 경우λ₯Ό λŒ€λΉ„ν•΄μ„œ λ‘˜ λ‹€ 보낸닀.(λ‘˜ 쀑에 ν•˜λ‚˜μ— κ±Έλ¦¬κ² μ§€λΌλŠ” 마음으둜 )

Cache-Control = μΊμ‹œ μ§€μ‹œμ–΄

  • Cache-control : max-age / μΊμ‹œ 유효 μ‹œκ°„. 초 λ‹¨μœ„
  • Cache-control : no-cache / λ°μ΄ν„°λŠ” μΊμ‹œν•΄λ„ λ˜μ§€λ§Œ, 항상 μ˜€λ¦¬μ§€λ‚  μ„œλ²„μ— κ²€μ¦ν•˜κ³  μ‚¬μš©ν•œλ‹€. 원 μ„œλ²„μ— 접근이 λΆˆκ°€ν•  λ•Œ μΊμ‹œ μ„œλ²„ 섀정에 따라 μΊμ‹œ 데이터λ₯Ό μ“Έ 수 μžˆλ‹€. 
  • Cache-control : no-store / 데이터에 λ―Όκ°ν•œ 정보가 μžˆμœΌλ―€λ‘œ μ €μž₯ν•˜λ©΄ μ•ˆλœλ‹€. (λ©”λͺ¨λ¦¬μ—μ„œ μ‚¬μš©ν•˜κ³  μ΅œλŒ€ν•œ 빨리 μ‚­μ œ)

 

Expires = μΊμ‹œ 만료일 지정 (ν•˜μœ„ ν˜Έν™˜)

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

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

- μ§€κΈˆμ€ 더 μœ μ—°ν•œ Cache-control : max-age ꢌμž₯

- Cache-control : max-age와 ν•¨κ»˜ μ‚¬μš©ν•˜λ©΄ ExpiresλŠ” λ¬΄μ‹œλœλ‹€. 

 

 


ν”„λ‘μ‹œ μ„œλ²„

 

ν”„λ‘μ‹œλž€?

ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„ 사이에 λŒ€λ¦¬λ‘œ 톡신을 μˆ˜ν–‰ν•˜λŠ” 것을 λ§ν•œλ‹€. 

κ·Έ 쀑계 κΈ°λŠ₯을 ν•˜λŠ” μ„œλ²„λ₯Ό ν”„λ‘μ‹œ μ„œλ²„λΌκ³  ν•œλ‹€. 

 

ν΄λΌμ΄μ–ΈνŠΈμ™€ μ˜€λ¦¬μ§€λ‚  μ„œλ²„ 사이에 ν”„λ‘μ‹œ μΊμ‹œ μ„œλ²„λ₯Ό λ„μž…ν•˜μ—¬ 해외에 μžˆλŠ” μ˜€λ¦¬μ§€λ‚  μ„œλ²„μ— μ ‘κ·Όν•˜λŠ” 것보닀 훨씬 λΉ λ₯Έ 속도에 자료λ₯Ό κ°€μ Έμ˜¬ 수 μžˆλ‹€. (μ—¬λŸ¬ μ‚¬λžŒμ΄ 찾은 자료일수둝 이미 μΊμ‹œμ— λ“±λ‘λ˜μ–΄ μžˆκΈ°μ— λΉ λ₯Έ μ†λ„λ‘œ 자료λ₯Ό κ°€μ Έμ˜¬ 수 μžˆλ‹€.)

private μΊμ‹œ : ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ μ‚¬μš©ν•˜κ³  μ €μž₯ν•˜λŠ” μΊμ‹œ,

public μΊμ‹œ : ν”„λ‘μ‹œ μΊμ‹œ μ„œλ²„μ˜ μΊμ‹œ

 

 

ν”„λ‘μ‹œ μΊμ‹œμ™€ κ΄€λ ¨λœ 헀더 - Cache-Control μΊμ‹œ μ§€μ‹œμ–΄

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

 


πŸ€”ν΄λΌμ΄μ–ΈνŠΈκ°€ μΊμ‹œλ₯Ό μ μš©ν•˜μ§€ μ•Šμ•˜λŠ”λ°, μ›Ή λΈŒλΌμš°μ €κ°€ μž„μ˜λ‘œ 캐싱을 ν•  λ•Œ, 이λ₯Ό λ¬΄νš¨ν™”ν•˜λŠ” 방법? πŸ€”

μΊμ‹œλ₯Ό λ¬΄νš¨ν™”ν•  수 μžˆλŠ” 헀더 - Cache-Control μΊμ‹œ μ§€μ‹œμ–΄

 

  • Cache-control : no-cache / λ°μ΄ν„°λŠ” μΊμ‹œν•΄λ„ λ˜μ§€λ§Œ, 항상 μ˜€λ¦¬μ§€λ‚  μ„œλ²„μ— κ²€μ¦ν•˜κ³  μ‚¬μš©(이름에 μ£Όμ˜ν•˜κΈ°!)

원 μ„œλ²„μ—μ„œ 검증 ν›„ 304 응닡을 ν•œλ‹€. 

λ§Œμ•½ ν”„λ‘μ‹œ μΊμ‹œ μ„œλ²„μ™€ 원 μ„œλ²„ κ°„ λ„€νŠΈμ›Œν¬ 연결이 λ‹¨μ ˆλ˜μ–΄ 접근이 λΆˆκ°€λŠ₯ν•˜λ‹€λ©΄, 였λ₯˜κ°€ μ•„λ‹Œ 였래된 데이터라도 λ³΄μ—¬μ£ΌμžλΌλŠ” κ°œλ…μœΌλ‘œ 200 OK둜 μ‘λ‹΅ν•œλ‹€. 

  • Cache-control : no-store / 데이터에 λ―Όκ°ν•œ 정보가 μžˆμ–΄μ„œ μ €μž₯ν•˜λ©΄ μ•ˆλœλ‹€. (λ©”λͺ¨λ¦¬μ—μ„œ μ‚¬μš©ν•˜κ³  μ΅œλŒ€ν•œ 빨리 μ‚­μ œ)
  • Cache-control : must-revalidate / μΊμ‹œ 만료 ν›„ 졜초 쑰회 μ‹œ μ˜€λ¦¬μ§€λ‚  μ„œλ²„μ— κ²€μ¦ν•˜κΈ°.

(μ˜€λ¦¬μ§€λ‚  μ„œλ²„ μ ‘κ·Ό μ‹€νŒ¨ μ‹œ λ°˜λ“œμ‹œ 였λ₯˜κ°€ λ°œμƒν•΄μ•Όν•œλ‹€. 504 gateway timeout)

(must-revalidateλŠ” μΊμ‹œ 유효 μ‹œκ°„μ΄λΌλ©΄ μΊμ‹œλ₯Ό μ‚¬μš©ν•œλ‹€. )

응닡이 μ—†μœΌλ©΄ λͺ»μ“΄λ‹€. 

  • Pragma : no-cache / HTTP 1.0 ν•˜μœ„ ν˜Έν™˜

! μΊμ‹œλ₯Ό λ¬΄νš¨ν™”λ₯Ό ν™•μ‹€ν•˜κ²Œ ν•΄μ•Ό ν•˜λŠ” 경우 Pragma와 같은 ν•˜μœ„ ν˜Έν™˜κΉŒμ§€ ν¬ν•¨ν•˜μ—¬ μ μš©ν•΄μ•Ό ν•œλ‹€.

 

 

βœ”οΈ 톡μž₯ μž”κ³  λ“± μ€‘μš”ν•œ 정보가 원 μ„œλ²„λ₯Ό λͺ»λ°›μ•˜λ‹€κ³  ν•΄μ„œ μ˜ˆμ „ λ°μ΄ν„°λ‘œ 뜨면 큰 λ¬Έμ œκ°€ 생기기 λ•Œλ¬Έμ— 이런 κ²½μš°μ—λŠ” Cache-control : must-revalidate λ₯Ό 써야 ν•œλ‹€. 

 

 

πŸ˜ƒ 잘λͺ»λœ κ°œλ… 전달이 μžˆλ‹€λ©΄ λŒ“κΈ€ λΆ€νƒλ“œλ¦½λ‹ˆλ‹€. μ €μ˜ μ„±μž₯에 큰 도움이 λ©λ‹ˆλ‹€πŸ€“