๐Ÿ“–
Aaron's TECH BOOK
  • Intro
    • About me
  • Lecture
    • Kubernetes
      • Begin Kubernetes
    • Kafka
      • Begin Kafka
    • Kotlin
      • TDD, Clean Code Preview
      • woowa Kotlin
    • Java
      • Multithread Concurrency
      • The Java
    • Toby
      • Toby Spring 6
      • Toby Spring Boot
    • MSA
      • 01.Micro Service
      • 02.DDD ์„ค๊ณ„
      • 03.DDD ๊ตฌํ˜„
      • 04.EDA ๊ตฌํ˜„
    • Spring Boot
    • Spring Batch
    • Spring Core Advanced
    • Spring DB Part II
    • Spring DB Part I
    • JPA API and Performance Optimization
    • JPA Web Application
    • JPA Programming Basic
    • Spring MVC Part 2
      • 01.Thymeleaf
      • 02.ETC
      • 03.Validation
      • 04.Login
      • 05.Exception
    • Spring MVC Part 1
      • 01.Servlet
      • 02.MVC
    • Http
      • 01.Basic
      • 02.Method
      • 03.Header
    • Spring Core
    • Study
      • Concurrency issues
      • First Come First Served
      • Performance Test
      • TDD
      • IntelliJ
  • Book
    • Kafka Streams in Action
      • 01.์นดํ”„์นด ์ŠคํŠธ๋ฆผ์ฆˆ
      • 02.์นดํ”„์นด ์ŠคํŠธ๋ฆผ์ฆˆ ๊ฐœ๋ฐœ
      • 03.์นดํ”„์นด ์ŠคํŠธ๋ฆผ์ฆˆ ๊ด€๋ฆฌ
    • Effective Kotlin
      • 01.์ข‹์€ ์ฝ”๋“œ
      • 02.์ฝ”๋“œ ์„ค๊ณ„
      • 03.ํšจ์œจ์„ฑ
    • ์ด๋ฒคํŠธ ์†Œ์‹ฑ๊ณผ MSA
      • 01.๋„๋ฉ”์ธ ์ฃผ๋„ ์„ค๊ณ„
      • 02.๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„ ์›์น™
      • 03-04.์ด๋ฒคํŠธ ์†Œ์‹ฑ
      • 05.๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ํ˜‘์—…
      • 06.๊ฒฐ๊ณผ์  ์ผ๊ด€์„ฑ
      • 07.CQRS
      • 08.UI
      • 09.ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ
    • ๋ชฝ๊ณ DB ์™„๋ฒฝ ๊ฐ€์ด๋“œ
      • I. ๋ชฝ๊ณ DB ์‹œ์ž‘
      • II. ๋ชฝ๊ณ DB ๊ฐœ๋ฐœ
    • Kotlin Cookbook
      • ์ฝ”ํ‹€๋ฆฐ ๊ธฐ์ดˆ
      • ์ฝ”ํ‹€๋ฆฐ ๊ธฐ๋Šฅ
      • ETC
    • Kotlin in Action
      • ํ•จ์ˆ˜/ํด๋ž˜์Šค/๊ฐ์ฒด/์ธํ„ฐํŽ˜์ด์Šค
      • ๋žŒ๋‹ค์™€ ํƒ€์ž…
      • ์˜ค๋ฒ„๋กœ๋”ฉ๊ณผ ๊ณ ์ฐจ ํ•จ์ˆ˜
      • ์ œ๋„ค๋ฆญ์Šค, ์• ๋…ธํ…Œ์ด์…˜, ๋ฆฌํ”Œ๋ ‰์…˜
    • Kent Beck Tidy First?
    • ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ธฐ์ดˆ
      • 01.์‚ฌ์šฉ์ž ์ˆ˜์— ๋”ฐ๋ฅธ ๊ทœ๋ชจ ํ™•์žฅ์„ฑ
      • 02.๊ฐœ๋žต์ ์ธ ๊ทœ๋ชจ ์ถ”์ •
      • 03.์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ณต๋žต๋ฒ•
      • 04.์ฒ˜๋ฆฌ์œจ ์ œํ•œ ์žฅ์น˜ ์„ค๊ณ„
      • 05.์•ˆ์ • ํ•ด์‹œ ์„ค๊ณ„
      • 06.ํ‚ค-๊ฐ’ ์ €์žฅ์†Œ ์„ค๊ณ„
      • 07.์œ ์ผ ID ์ƒ์„ฑ๊ธฐ ์„ค๊ณ„
      • 08.URL ๋‹จ์ถ•๊ธฐ ์„ค๊ณ„
      • 09.์›น ํฌ๋กค๋Ÿฌ ์„ค๊ณ„
      • 10.์•Œ๋ฆผ ์‹œ์Šคํ…œ ์„ค๊ณ„
      • 11.๋‰ด์Šค ํ”ผ๋“œ ์‹œ์Šคํ…œ ์„ค๊ณ„
      • 12.์ฑ„ํŒ… ์‹œ์Šคํ…œ ์„ค๊ณ„
      • 13.๊ฒ€์ƒ‰์–ด ์ž๋™์™„์„ฑ ์‹œ์Šคํ…œ
      • 14.์œ ํŠœ๋ธŒ ์„ค๊ณ„
      • 15.๊ตฌ๊ธ€ ๋“œ๋ผ์ด๋ธŒ ์„ค๊ณ„
      • 16.๋ฐฐ์›€์€ ๊ณ„์†๋œ๋‹ค
    • ์‹ค์šฉ์ฃผ์˜ ํ”„๋กœ๊ทธ๋ž˜๋จธ๐Ÿ“–
    • GoF Design Patterns
    • ๋„๋ฉ”์ธ ์ฃผ๋„ ๊ฐœ๋ฐœ ์‹œ์ž‘ํ•˜๊ธฐ
      • 01.๋„๋ฉ”์ธ ๋ชจ๋ธ ์‹œ์ž‘ํ•˜๊ธฐ
      • 02.์•„ํ‚คํ…์ฒ˜ ๊ฐœ์š”
      • 03.์• ๊ทธ๋ฆฌ๊ฑฐํŠธ
      • 04.๋ฆฌํฌ์ง€ํ„ฐ๋ฆฌ์™€ ๋ชจ๋ธ ๊ตฌํ˜„
      • 05.Spring Data JPA๋ฅผ ์ด์šฉํ•œ ์กฐํšŒ ๊ธฐ๋Šฅ
      • 06.์‘์šฉ ์„œ๋น„์Šค์™€ ํ‘œํ˜„ ์˜์—ญ
      • 07.๋„๋ฉ”์ธ ์„œ๋น„์Šค
      • 08.์• ๊ทธ๋ฆฌ๊ฑฐํŠธ ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ
      • 09.๋„๋ฉ”์ธ ๋ชจ๋ธ๊ณผ ๋ฐ”์šด๋””๋“œ ์ปจํ…์ŠคํŠธ
      • 10.์ด๋ฒคํŠธ
      • 11.CQRS
    • Effective Java 3/E
      • ๊ฐ์ฒด, ๊ณตํ†ต ๋ฉ”์„œ๋“œ
      • ํด๋ž˜์Šค, ์ธํ„ฐํŽ˜์ด์Šค, ์ œ๋„ค๋ฆญ
    • ์†Œํ”„ํŠธ์›จ์–ด ์žฅ์ธ
    • ํ•จ๊ป˜ ์ž๋ผ๊ธฐ
    • Modern Java In Action
      • 01.๊ธฐ์ดˆ
      • 02.ํ•จ์ˆ˜ํ˜• ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ
      • 03.์ŠคํŠธ๋ฆผ๊ณผ ๋žŒ๋‹ค๋ฅผ ์ด์šฉํ•œ ํšจ๊ณผ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ
      • 04.๋งค์ผ ์ž๋ฐ”์™€ ํ•จ๊ป˜
    • Refactoring
      • 01.๋ฆฌํŽ™ํ„ฐ๋ง ์ฒซ ๋ฒˆ์งธ ์˜ˆ์‹œ
      • 02.๋ฆฌํŽ™ํ„ฐ๋ง ์›์น™
      • 03.์ฝ”๋“œ์—์„œ ๋‚˜๋Š” ์•…์ทจ
      • 06.๊ธฐ๋ณธ์ ์ธ ๋ฆฌํŽ™ํ„ฐ๋ง
      • 07.์บก์Аํ™”
      • 08.๊ธฐ๋Šฅ ์ด๋™
      • 09.๋ฐ์ดํ„ฐ ์กฐ์งํ™”
      • 10.์กฐ๊ฑด๋ถ€ ๋กœ์ง ๊ฐ„์†Œํ™”
      • 11.API ๋ฆฌํŒฉํ„ฐ๋ง
      • 12.์ƒ์† ๋‹ค๋ฃจ๊ธฐ
    • ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์‚ฌ์‹ค๊ณผ ์˜คํ•ด
      • 01.ํ˜‘๋ ฅํ•˜๋Š” ๊ฐ์ฒด๋“ค์˜ ๊ณต๋™์ฒด
      • 02.์ด์ƒํ•œ ๋‚˜๋ผ์˜ ๊ฐ์ฒด
      • 03.ํƒ€์ž…๊ณผ ์ถ”์ƒํ™”
      • 04.์—ญํ• , ์ฑ…์ž„, ํ˜‘๋ ฅ
      • 05.์ฑ…์ž„๊ณผ ๋ฉ”์‹œ์ง€
      • 06.๊ฐ์ฒด ์ง€๋„
      • 07.ํ•จ๊ป˜ ๋ชจ์œผ๊ธฐ
      • ๋ถ€๋ก.์ถ”์ƒํ™” ๊ธฐ๋ฒ•
    • Clean Code
    • ์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ
Powered by GitBook
On this page
  • HTTP Header
  • HTTP ํ•ด๋” (์ผ๋ฐ˜ ํ—ค๋”)
  • HTTP ํ—ค๋”
  • ํ‘œํ˜„
  • Content negotiation
  • ์ „์†ก ๋ฐฉ์‹
  • ์ผ๋ฐ˜ ์ •๋ณด
  • ํŠน๋ณ„ํ•œ ์ •๋ณด
  • ์ธ์ฆ
  • ์ฟ ํ‚ค
  • HTTP ํ•ด๋” (์บ์‹œ์™€ ์กฐ๊ฑด๋ถ€ ์š”์ฒญ)
  • ์บ์‹œ ๊ธฐ๋ณธ ๋™์ž‘
  • ๊ฒ€์ฆ ํ—ค๋”์™€ ์กฐ๊ฑด๋ถ€ ์š”์ฒญ (Last-Modified)
  • ๊ฒ€์ฆ ํ—ค๋”์™€ ์กฐ๊ฑด๋ถ€ ์š”์ฒญ (ETag)
  • ์บ์‹œ์™€ ์กฐ๊ฑด๋ถ€ ์š”์ฒญ ํ—ค๋”
  • ํ”„๋ก์‹œ ์„œ๋ฒ„
  • ์บ์‹œ ๋ฌดํšจํ™”
  1. Lecture
  2. Http

03.Header

Last updated 1 year ago

HTTP Header

HTTP ํ•ด๋” (์ผ๋ฐ˜ ํ—ค๋”)

HTTP/1.1 200 OK         -- start line

-- HTTP Header
Content-Type: text/html;charset=UTF-8
Content-Length: 3423
---

-- Message Body
<html>
 <body>...</body>
</html>
---

HTTP ํ—ค๋”

  • header-field

    • field-name: field-value

    • HTTP ์ „์†ก์— ํ•„์š”ํ•œ ๋ชจ๋“  ๋ถ€๊ฐ€์ •๋ณด

      • ex) Mesasage body ๋‚ด์šฉ/ํฌ๊ธฐ, ์••์ถ•, ์ธ์ฆ, ์„œ๋ฒ„ ์ •๋ณด ๋“ฑ..

ํ‘œํ˜„

  • ํ‘œํ˜„์€ ์š”์ฒญ์ด๋‚˜ ์‘๋‹ต์—์„œ ์ „๋‹ฌํ•  ์‹ค์ œ ๋ฐ์ดํ„ฐ

  • ํ‘œํ˜„ ํ—ค๋”๋Š” ํ‘œํ˜„ ๋ฐ์ดํ„ฐ๋ฅผ ํ•ด์„ํ•  ์ˆ˜ ์žˆ๋Š” ์ •๋ณด ์ œ๊ณต

  • ํ‘œํ˜„ ํ—ค๋”

    • Content-Type : ํ‘œํ˜„ ๋ฐ์ดํ„ฐ์˜ ํ˜•์‹

      • text/html; charset=utf-8

      • application/json

      • image/png

    • Content-Encoding : ํ‘œํ˜„ ๋ฐ์ดํ„ฐ์˜ ์••์ถ• ๋ฐฉ์‹

      • gzip

      • deflate

      • identity

    • Content-Language : ํ‘œํ˜„ ๋ฐ์ดํ„ฐ์˜ ์ž์—ฐ ์–ธ์–ด

      • ko

      • en

      • en-US

    • Content-Length : ํ‘œํ˜„ ๋ฐ์ดํ„ฐ์˜ ๊ธธ์ด(Byte)

Content negotiation

Client๊ฐ€ ์„ ํ˜ธํ•˜๋Š” ํ‘œํ˜„ ์š”์ฒญ (์š”์ฒญ์‹œ์—๋งŒ ์‚ฌ์šฉ)

  • Accept : Client๊ฐ€ ์„ ํ˜ธํ•˜๋Š” ๋ฏธ๋””์–ด ํƒ€์ž… ์ „๋‹ฌ

    • Accept: text/*, text/plain, text/plain;format=flowed, */*

  • Accept-Charset : Client๊ฐ€ ์„ ํ˜ธํ•˜๋Š” ๋ฌธ์ž ์ธ์ฝ”๋”ฉ

  • Accept-Encoding : Client๊ฐ€ ์„ ํ˜ธํ•˜๋Š” ์••์ถ• ์ธ์ฝ”๋”ฉ

  • Accept-Language : Client๊ฐ€ ์„ ํ˜ธํ•˜๋Š” ์ž์—ฐ ์–ธ์–ด

    • Accept-Language: ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7

์ „์†ก ๋ฐฉ์‹

๋‹จ์ˆœ ์ „์†ก

  • Content-Length: 3423

์••์ถ• ์ „์†ก

  • Content-Encoding: gzip

๋ถ„ํ•  ์ „์†ก

  • Transfer-Encoding: chunked

๋ฒ”์œ„ ์ „์†ก

  • Content-Range: bytes 1001-2000 / 2000

์ผ๋ฐ˜ ์ •๋ณด

Form

  • User agent email ์ •๋ณด (์š”์ฒญ)

Referer

  • ์ด์ „ ์›น ํŽ˜์ด์ง€ ์ฃผ์†Œ (์š”์ฒญ)

User-Agent

  • User-Agent Application ์ •๋ณด (์š”์ฒญ)

  • Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36

Server

  • ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ORIGIN ์„œ๋ฒ„์˜ ์†Œํ”„ํŠธ์›จ์–ด ์ •๋ณด (์‘๋‹ต)

  • Apache/2.2.22

Date

  • ๋ฉ”์‹œ์ง€๊ฐ€ ๋ฐœ์ƒํ•œ ๋‚ ์งœ์™€ ์‹œ๊ฐ„ (์‘๋‹ต)

ํŠน๋ณ„ํ•œ ์ •๋ณด

Host

  • ์š”์ฒญํ•œ ํ˜ธ์ŠคํŠธ์˜ ์ •๋ณด (๋„๋ฉ”์ธ)

  • ์š”์ฒญ์—์„œ ํ•„์ˆ˜

  • ํ•˜๋‚˜์˜ IP์— ์—ฌ๋Ÿฌ ๋„๋ฉ”์ธ์ด ์ ์šฉ๋˜์—ˆ์„ ๊ฒฝ์šฐ

Location

  • ํŽ˜์ด์ง€ ๋ฆฌ๋‹ค์ด๋ ‰์…˜

  • 3xx ์‘๋‹ต์˜ ๊ฒฐ๊ณผ์— Location ํ—ค๋”๊ฐ€ ์žˆ์œผ๋ฉด, Location ์œ„์น˜๋กœ ์ž๋™ ์ด๋™

  • 201 (Created), 3xx (Redirection)

์ธ์ฆ

Authorization

  • ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ ์ •๋ณด๋ฅผ ์„œ๋ฒ„์— ์ „๋‹ฌ

  • Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW

WWW-Authenticate

  • ๋ฆฌ์†Œ์Šค ์ ‘๊ทผ์‹œ ํ•„์š”ํ•œ ์ธ์ฆ ๋ฐฉ๋ฒ• ์ •์˜

์ฟ ํ‚ค

Set-Cookie

  • ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ๋กœ ์ฟ ํ‚ค ์ „๋‹ฌ(์‘๋‹ต)

Cookie

  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—์„œ ๋ฐ›์€ ์ฟ ํ‚ค๋ฅผ ์ €์žฅํ•˜๊ณ , HTTP ์š”์ฒญ์‹œ ์„œ๋ฒ„๋กœ ์ „๋‹ฌ

๋™์ž‘

  1. ๋กœ๊ทธ์ธ

  2. ์„œ๋ฒ„๋Š” Set-Cookie์— user ์ •๋ณด๋ฅผ ๋‹ด์•„์„œ ์‘๋‹ต

  3. ์›น๋ธŒ๋ผ์šฐ์ € ๋‚ด๋ถ€ ์ฟ ํ‚ค ์ €์žฅ์†Œ์— ์ฟ ํ‚ค(user) ์ •๋ณด ์ €์žฅ

  4. ๋กœ๊ทธ์ธ ์ดํ›„ ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ๋งˆ๋‹ค ์ž๋™์œผ๋กœ ์ฟ ํ‚ค ์ €์žฅ์†Œ๋ฅผ ์กฐํšŒ ํ›„ Cookie ํ—ค๋”๋ฅผ ๋งŒ๋“ค์–ด์„œ ์„œ๋ฒ„์— ์ „์†ก

์‚ฌ์šฉ

  • ์‚ฌ์šฉ์ž ๋กœ๊ทธ์ธ ์„ธ์…˜ ๊ด€๋ฆฌ

  • ๊ด‘๊ณ  ์ •๋ณด ํŠธ๋ž˜ํ‚น

์ฟ ํ‚ค ์ •๋ณด๋Š” ํ•ญ์ƒ ์„œ๋ฒ„์— ์ „์†ก

  • ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ ์ถ”๊ฐ€ ์œ ๋ฐœ

  • ์ตœ์†Œํ•œ์˜ ์ •๋ณด๋งŒ ์‚ฌ์šฉ(session id, ์ธ์ฆ token)

  • ์›น ์Šคํ† ๋ฆฌ์ง€(localStorage, sessionStorage)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›น ๋ธŒ๋ผ์šฐ์ € ๋‚ด๋ถ€์— ๋ฐ์ดํ„ฐ ์ €์žฅ ๊ฐ€๋Šฅ

์ƒ๋ช…์ฃผ๊ธฐ

  • Set-Cookie

    • expires=Sat, 26-Dec-2020 04:39:21 GMT

    • max-age=3600 (sec)

    • domain=google.com

      • ๋ช…์‹œ : ๋ช…์‹œ ๋„๋ฉ”์ธ + ์„œ๋ธŒ ๋„๋ฉ”์ธ

      • ์ƒ๋žต : ํ˜„์žฌ ๋ฌธ์„œ ๊ธฐ์ค€ ๋„๋ฉ”์ธ

    • path=/

      • ๋ช…์‹œ ๊ฒฝ๋กœ ํฌํ•จ ํ•˜์œ„ ๊ฒฝ๋กœ

    • Secure

      • https์ธ ๊ฒฝ์šฐ์—๋งŒ ์ฟ ํ‚ค ์ „์†ก

    • HttpOnly

      • XSS ๊ณต๊ฒฉ ๋ฐฉ์ง€ / JS์—์„œ ์ ‘๊ทผ ๋ถˆ๊ฐ€

    • SameSite

      • XSRF ๊ณต๊ฒฉ ๋ฐฉ์ง€

      • ์š”์ฒญ ๋„๋ฉ”์ธ๊ณผ ์ฟ ํ‚ค ์„ค์ • ๋„๋ฉ”์ธ์ด ๊ฐ™์€ ๊ฒฝ์šฐ์—๋งŒ ์ฟ ํ‚ค ์ „์†ก

  • ์„ธ์…˜ ์ฟ ํ‚ค: ๋งŒ๋ฃŒ ๋‚ ์งœ๋ฅผ ์ƒ๋žตํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ € ์ข…๋ฃŒ์‹œ ๊นŒ์ง€๋งŒ ์œ ์ง€

  • ์˜์† ์ฟ ํ‚ค: ๋งŒ๋ฃŒ ๋‚ ์งœ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ํ•ด๋‹น ๋‚ ์งœ๊นŒ์ง€ ์œ ์ง€


HTTP ํ•ด๋” (์บ์‹œ์™€ ์กฐ๊ฑด๋ถ€ ์š”์ฒญ)

์บ์‹œ ๊ธฐ๋ณธ ๋™์ž‘

๋™์ž‘

  1. ์บ์‹œ ์œ ํšจ ์‹œ๊ฐ„ ์„ค์ • -> cache-control: max-age=60

  2. ์‘๋‹ต ๊ฒฐ๊ณผ๋ฅผ ๋ธŒ๋ผ์šฐ์ € ์บ์‹œ์— ์ €์žฅ

  3. ๋‘ ๋ฒˆ์งธ ์š”์ฒญ ์‹œ ์บ์‹œ๋ฅผ ํƒ์ƒ‰ ํ›„ ์บ์‹œ์—์„œ ์กฐํšŒ (๋„คํŠธ์›Œํฌ ์‚ฌ์šฉ๋Ÿ‰ ๊ฐ์†Œ)

  4. ์žฌ์š”์ฒญ ์‹œ ์บ์‹œ ์œ ํšจ ์‹œ๊ฐ„์ด ์ดˆ๊ณผ๋˜์—ˆ๋‹ค๋ฉด ๊ฐฑ์‹ 

๊ฒ€์ฆ ํ—ค๋”์™€ ์กฐ๊ฑด๋ถ€ ์š”์ฒญ (Last-Modified)

  • ์บ์‹œ ๋งŒ๋ฃŒํ›„์—๋„ ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์•˜๋‹ค๋งŒ ์ €์žฅํ•ด ๋‘์—ˆ๋˜ ์บ์‹œ๋ฅผ ์žฌ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์ดˆ๊ธฐ ์š”์ฒญ ์‹œ ๋ฐ์ดํ„ฐ ์ตœ์ข… ์ˆ˜์ •์ผ์„ ์บ์‹œ์— ํ•จ๊ป˜ ์ €์žฅ (๊ฒ€์ฆ ํ—ค๋”)

    • Last-Modified: Wed, 21 July 2021 07:28:00 GMT

  • ์บ์‹œ ์‹œ๊ฐ„ ์ดˆ๊ณผ ํ›„ ์žฌ์š”์ฒญ ์‹œ ๋ฐ์ดํ„ฐ ์ตœ์ข… ์ˆ˜์ •์ผ์„ ํ—ค๋”์— ํ•จ๊ป˜ ์ „๋‹ฌ (์กฐ๊ฑด๋ถ€ ์š”์ฒญ)

    • if-modified-since: Wed, 21 July 2021 07:28:00 GMT

  • ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ˆ˜์ •๋˜์ง€ ์•Š์€๊ฒŒ ํ™•์ธ๋˜๋ฉด 304 Not Modified ๋กœ ์‘๋‹ต

    • HTTP Body๋Š” ํฌํ•จํ•˜์ง€ ์•Š๊ณ  Header ๋ฉ”ํƒ€ ์ •๋ณด๋งŒ ์‘๋‹ต

  • ํด๋ผ์ด์–ธํŠธ๋Š” ์บ์‹œ์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์žฌ์‚ฌ์šฉ

๊ฒ€์ฆ ํ—ค๋”์™€ ์กฐ๊ฑด๋ถ€ ์š”์ฒญ (ETag)

  • Entity Tag : Last-Modified์˜ ๋‹จ์  ๋ณด์™„

  • ์บ์‹œ ์ œ์–ด ๋กœ์ง์„ ์„œ๋ฒ„์—์„œ ๊ด€๋ฆฌ

    • ์บ์‹œ ๋ฐ์ดํ„ฐ๋Š” ์ž„์˜์˜ ๊ณ ์œ  ๋ฒ„์ „ ํ˜น์€ Hash ์ด๋ฆ„ ๋ณด์œ 

  • ์ดˆ๊ธฐ ์š”์ฒญ ์‹œ ETag๋ฅผ ์บ์‹œ์— ํ•จ๊ป˜ ์ €์žฅ (๊ฒ€์ฆ ํ—ค๋”)

    • ETag: "a2jiodwjekjl3"

  • ์บ์‹œ ์‹œ๊ฐ„ ์ดˆ๊ณผ ํ›„ ์žฌ์š”์ฒญ ์‹œ ETag๋ฅผ ํ—ค๋”์— ํ•จ๊ป˜ ์ „๋‹ฌ (์กฐ๊ฑด๋ถ€ ์š”์ฒญ)

    • If-None-Match: "aaaaaaaaaa"

  • ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ˆ˜์ •๋˜์ง€ ์•Š์€๊ฒŒ ํ™•์ธ๋˜๋ฉด 304 Not Modified ๋กœ ์‘๋‹ต

    • HTTP Body๋Š” ํฌํ•จํ•˜์ง€ ์•Š๊ณ  Header ๋ฉ”ํƒ€ ์ •๋ณด๋งŒ ์‘๋‹ต

  • ํด๋ผ์ด์–ธํŠธ๋Š” ์บ์‹œ์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์žฌ์‚ฌ์šฉ

์บ์‹œ์™€ ์กฐ๊ฑด๋ถ€ ์š”์ฒญ ํ—ค๋”

Cache-Control : ์บ์‹œ ์ œ์–ด

  • max-age : ์บ์‹œ ์œ ํšจ ์‹œ๊ฐ„ (์ดˆ)

  • no-cache : (์ดํ„ฐ๋Š” ์บ์‹œํ•ด๋„ ๋˜์ง€๋งŒ), ํ”„๋ก์‹œ ์บ์‹œ๊ฐ€ ์•„๋‹Œ ํ•ญ์ƒ ์›์„œ๋ฒ„์— ๋ณ€๊ฒฝ์‚ฌํ•ญ ๊ฒ€์ฆ ํ›„ ์‚ฌ์šฉ

  • no-store : ๋ฐ์ดํ„ฐ์— ๋ฏผ๊ฐํ•œ ์ •๋ณด๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ์ €์žฅ X

  • must-revalidate : ์บ์‹œ ๋งŒ๋ฃŒ ํ›„ ์ตœ์ดˆ ์กฐํšŒ ์‹œ ์› ์„œ๋ฒ„์— ๊ฒ€์ฆ

ํ”„๋ก์‹œ ์„œ๋ฒ„

  • ํ•ด์™ธ ์›์„œ๋ฒ„์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ธŒ๋ผ์šฐ์ €์—์„œ(private cache)๋น ๋ฅด๊ฒŒ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ค‘๊ฐ„(ํ”„๋ก์‹œ ์บ์‹œ ์„œ๋ฒ„, public cache)์—์„œ ๊ณต์šฉ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์บ์‹œ ์„œ๋ฒ„

์บ์‹œ ์ง€์‹œ์–ด(directives)

  • Cache-Control: public

    • ์‘๋‹ต์ด public ์บ์‹œ์— ์ €์žฅ ๊ฐ€๋Šฅ

  • Cache-Control: private

    • ์‘๋‹ต์ด ํ•ด๋‹น ์‚ฌ์šฉ์ž๋งŒ์„ ์œ„ํ•œ ๊ฒƒ, private ์บ์‹œ์— ์ €์žฅ(๊ธฐ๋ณธ๊ฐ’)

์บ์‹œ ๋ฌดํšจํ™”

Cache-Control: no-cache, no-store, must-revalidate

Pragma: no-cache # HTTP 1.0 ํ•˜์œ„ ํ˜ธํ™˜

Reference

HTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ ๋„์„œ

ํ‘œ์ค€ ํ—ค๋”
rfc7231 Accept
HTTP ์ŠคํŽ™ : RFC 7230~7235