Amenable
Amenable's Blog
Amenable
  • λΆ„λ₯˜ 전체보기 (189)
    • πŸ“‚ JAVA (87)
      • μ΄νŽ™ν‹°λΈŒ μžλ°” (65)
      • μ£Όμš” κ°œλ… (22)
    • πŸ“‚ 개발 μ„œμ  (22)
      • μ‹€μš©μ£Όμ˜ ν”„λ‘œκ·Έλž˜λ¨Έ (1)
      • 객체지ν–₯의 사싀과 μ˜€ν•΄ (2)
      • 클린 μ½”λ“œ (8)
      • ν•¨κ»˜ 자라기 (1)
      • 그림으둜 λ°°μš°λŠ” HTTP&Network Basic (10)
    • πŸ“‚ λ°μ΄ν„°λ² μ΄μŠ€ (8)
      • κ°œλ… (8)
      • λ¬Έμ œν’€μ΄ (0)
    • πŸ“‚ λ„€νŠΈμ›Œν¬ (14)
      • κ°œλ… (6)
      • 성곡과 μ‹€νŒ¨λ₯Ό κ²°μ •ν•˜λŠ” 1%의 λ„€νŠΈμ›Œν¬ 원리 (8)
    • πŸ“‚ μŠ€ν”„λ§ (13)
      • κΈ°λ³Έ κ°œλ… (13)
    • πŸ“‚ WEB (5)
    • πŸ“‚ 자료ꡬ쑰 (12)
      • κ°œλ… (2)
      • μ •λ ¬ (8)
      • 트리 (2)
    • πŸ“‚ μ•Œκ³ λ¦¬μ¦˜ (10)
      • μ΅œμ†Œμ‹ μž₯트리 (2)
      • μ΅œλ‹¨ 경둜 (2)
      • λ¬Έμžμ—΄ (2)
      • ETC (4)
    • πŸ“‚ μ•Œκ³ λ¦¬μ¦˜_λ¬Έμ œν’€μ΄ (4)
      • BOJ_λ°±μ€€ (4)
    • πŸ“‚ ν”„λ‘œκ·Έλž˜λ° (3)
    • πŸ“‚ DevOps (2)
      • 배포 (2)
    • πŸ“‚ ν›„κΈ° (8)
      • μš°μ•„ν•œ ν…Œν¬μ½”μŠ€(ν”„λ¦¬μ½”μŠ€) (4)
      • 2023λ…„ (3)
      • 2024λ…„ (1)
    • πŸ“‚ 회고 (1)
      • 2023λ…„ (1)

λΈ”λ‘œκ·Έ 메뉴

  • πŸš€ GitHub

ν‹°μŠ€ν† λ¦¬

hELLO Β· Designed By μ •μƒμš°.
Amenable

Amenable's Blog

μΊμ‹œ(Cache) - 검증 헀더와 쑰건뢀 μš”μ²­ 헀더
πŸ“‚ WEB

μΊμ‹œ(Cache) - 검증 헀더와 쑰건뢀 μš”μ²­ 헀더

2023. 3. 29. 22:16

  μ΄μ „ 글을 톡해 μΊμ‹œμ˜ κΈ°λ³Έ κ°œλ…μ„ μ‚΄νŽ΄λ³΄μ•˜λ‹€. 응닡을 받을 λ•Œ 'μΊμ‹œκ°€ μœ νš¨ν•œ μ‹œκ°„ κ°’'을 λ°›μ•˜λŠ”λ° λ§Œμ•½ μΊμ‹œ 유효 μ‹œκ°„μ΄ μ΄ˆκ³Όν•œ κ²½μš°μ—λŠ” μ–΄λ–»κ²Œ λ™μž‘μ„ ν•΄μ•Ό ν• κΉŒ? 

  더 λ‚˜μ•„κ°€μ„œ μ„œλ²„μ— λ‹€μ‹œ μš”μ²­μ„ ν–ˆμ§€λ§Œ 데이터가 λ°”λ€Œμ§€ μ•Šμ•„μ„œ 'μΊμ‹œμ— μžˆλŠ” 유효 μ‹œκ°„μ΄ μ§€λ‚œ 데이터'와 같은 데이터라면 ꡳ이 또 λ‹€μš΄μ„ 받아와야 ν• κΉŒ?

  μ΄λŸ¬ν•œ 점을 '검증 해더'와 '쑰건뢀 μš”μ²­ 헀더'λΌλŠ” 것을 톡해 λ™μž‘ 방식을 이해해 보자.

 

1. 검증 헀더와 쑰건뢀 μš”μ²­ 헀더 🐳

1. 검증 헀더

  • μΊμ‹œ λ°μ΄ν„°μ™€ μ„œλ²„ λ°μ΄ν„°κ°€ κ°™μ€μ§€ κ²€μ¦ν•˜λŠ” λ°μ΄ν„°
  • Last-Modified, ETagλ₯Ό μ‚¬μš©

2. 쑰건뢀 μš”μ²­ 헀더

  • 검증 ν—€λ”λ‘œ λ°›μ€ μ‘°κ±΄μ— λ”°λΌ λΆ„κΈ°κ°€ μƒκΈ°λŠ” ν—€λ”
  • If-Modified-Since인 κ²½μš°, Last-Modified μ‚¬μš©
    If-None-Match인 κ²½μš°, ETag μ‚¬μš©
  • 쑰건이 λ§Œμ‘±ν•˜λ©΄(= λ°μ΄ν„°κ°€ λ³€κ²½λ˜μ—ˆμ„ κ²½μš°), 200 OK
    쑰건이 λ§Œμ‘±ν•˜μ§€ μ•ŠμœΌλ©΄(= λ°μ΄ν„°κ°€ λ³€κ²½λ˜μ§€ μ•Šμ•˜μ„ κ²½μš°), 304 Not Modifed (HTTP λ°”λ”” 없이 헀더 메타 μ •λ³΄λ§Œ μ‘λ‹΅ν•œλ‹€.)

 

2. Last-Modified & ETag 🐟

1. Last-Modified

  • 데이터λ₯Ό μˆ˜μ •ν•œ λ‚ μ§œλ₯Ό μ €μž₯ν•œλ‹€.

2. ETag

  • μΊμ‹œμš© λ°μ΄ν„°μ— μž„μ˜μ˜ κ³ μœ ν•œ λ²„μ „ μ΄λ¦„을 λ‹€λŠ” κ²ƒ
  • 데이터λ₯Ό μˆ˜μ •ν•΄μ„œ λ‚ μ§œλŠ” λ‹€λ₯΄μ§€λ§Œ λ°μ΄ν„°μ˜ λ‚΄μš©μ΄ 같은 κ²½μš°μ— μ‚¬μš© κ°€λŠ₯ (Last-Modifiedλ₯Ό μ΄μš©ν•˜λ©΄ 기쑴의 데이터와 λ‹€λ₯΄λ‹€κ³  인식)

 

3. Last-Modified λ™μž‘ 방식 πŸ‹

  1. μ„œλ²„κ°€ λ°μ΄ν„°λ₯Ό λ³΄λ‚Ό λ•Œ Last-Modified μ •보λ₯Ό λ³΄λ‚Έλ‹€.
  2. μΊμ‹œ μœ νš¨ μ‹œκ°„이 μ§€λ‚˜ λ‹€μ‹œ λ°μ΄ν„°λ₯Ό μš”μ²­ν•  κ²½μš° If-modified-since μ •보λ₯Ό ν•¨κ»˜ λ³΄λ‚Έλ‹€.
  3. μ„œλ²„μ— μžˆλŠ” λ°μ΄ν„°μ˜ μ΅œμ’… μˆ˜μ •일이 If-modified-since와 κ°™μ€ κ²½μš° HTTP Body 없이 304 Not Modifiedλ₯Ό μ „솑
  4. 헀더 데이터λ₯Ό μ΄μš©ν•˜μ—¬ λΈŒλΌμš°μ €μ— μžˆλŠ” 데이터λ₯Ό κ°±μ‹ 
  5. μ›ΉλΈŒλΌμš°μ €λŠ” λΈŒλΌμš°μ € μΊμ‹œμ— μžˆλŠ” λ°μ΄ν„°λ₯Ό μž¬μ‚¬μš©

 

4. ETag λ™μž‘ 방식 🐬

  1. μ„œλ²„κ°€ λ°μ΄ν„°λ₯Ό λ³΄λ‚Ό λ•Œ ETag μ •보λ₯Ό λ³΄λ‚Έλ‹€.
  2. μΊμ‹œ μœ νš¨ μ‹œκ°„이 μ§€λ‚˜ λ‹€μ‹œ λ°μ΄ν„°λ₯Ό μš”μ²­ν•  κ²½μš° If-None-Match μ •보λ₯Ό ν•¨κ»˜ λ³΄λ‚Έλ‹€.
  3. μ„œλ²„μ— μžˆλŠ” λ°μ΄ν„°μ˜ ETag값이 If-None-Match의 κ°’κ³Ό κ°™μ€ κ²½μš° HTTP Body 없이 304 Not Modifiedλ₯Ό μ „솑
  4. 헀더 λ°μ΄ν„°λ₯Ό μ΄μš©ν•˜μ—¬ λΈŒλΌμš°μ €μ— μžˆλŠ” λ°μ΄ν„°λ₯Ό κ°±μ‹ 
  5. μ›ΉλΈŒλΌμš°μ €λŠ” λΈŒλΌμš°μ € μΊμ‹œμ— μžˆλŠ” λ°μ΄ν„°λ₯Ό μž¬μ‚¬μš©

 

ν•΄λ‹Ή 글은
κΉ€μ˜ν•œ λ‹˜μ˜ 'λͺ¨λ“  개발자λ₯Ό μœ„ν•œ HTTP μ›Ή κΈ°λ³Έ 지식'
λ₯Ό μ°Έκ³ ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

 

'πŸ“‚ WEB' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

쿠킀와 λ³΄μ•ˆ 문제  (0) 2023.04.29
μΊμ‹œ(Cache)  (0) 2023.03.29
μ„Έμ…˜(Session)  (0) 2023.03.28
μΏ ν‚€(Cookie)  (0) 2023.03.28
    'πŸ“‚ WEB' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
    • 쿠킀와 λ³΄μ•ˆ 문제
    • μΊμ‹œ(Cache)
    • μ„Έμ…˜(Session)
    • μΏ ν‚€(Cookie)
    Amenable
    Amenable
    CS, μžλ°”, 자료ꡬ쑰, μ•Œκ³ λ¦¬μ¦˜, μŠ€ν”„λ§, μŠ€ν”„λ§ λΆ€νŠΈμ— ν•΄λ‹Ήν•˜λŠ” κ°œλ°œμ— κ΄€ν•œ λ‚΄μš©μ„ κ³΅μœ ν•©λ‹ˆλ‹€.

    ν‹°μŠ€ν† λ¦¬νˆ΄λ°”