๐Ÿฟ HTTP ์™„๋ฒฝ ๊ฐ€์ด๋“œ - 3์žฅ HTTP ๋ฉ”์‹œ์ง€

modoleeยท2020๋…„ 8์›” 27์ผ
2

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

๋ชฉ๋ก ๋ณด๊ธฐ
3/3
post-thumbnail

๋ฉ”์‹œ์ง€์˜ ํ๋ฆ„

  • ๋ฉ”์„ธ์ง€๋Š” ์› ์„œ๋ฒ„ ๋ฐฉํ–ฅ์„ ์ธ๋ฐ”์šด๋“œ๋กœ ํ•˜์—ฌ ์†ก์‹ 
    • ์ธ๋ฐ”์šด๋“œ : ํด๋ผ์ด์–ธํŠธ โ†’ ์„œ๋ฒ„
    • ์•„์›ƒ๋ฐ”์šด๋“œ : ์„œ๋ฒ„ โ†’ ํด๋ผ์ด์–ธํŠธ
  • ๋‹ค์šด์ŠคํŠธ๋ฆผ์œผ๋กœ ํ๋ฅด๋Š” ๋ฉ”์‹œ์ง€
    • ์š”์ฒญ ๋ฉ”์‹œ์ง€๋ƒ ์‘๋‹ต ๋ฉ”์‹œ์ง€๋ƒ์— ๊ด€๊ณ„ ์—†์ด ๋ชจ๋“  ๋ฉ”์‹œ์ง€๋Š” ๋‹ค์šด์ŠคํŠธ๋ฆผ์œผ๋กœ ํ๋ฆ„
    • ์—…์ŠคํŠธ๋ฆผ : ์ˆ˜์‹ ์ž์˜ ์—…์ŠคํŠธ๋ฆผ์€ ๋ฐœ์†ก์ž
    • ๋‹ค์šด์ŠคํŠธ๋ฆผ : ๋ฐœ์†ก์ž์˜ ๋‹ค์šด์ŠคํŠธ๋ฆผ์€ ์ˆ˜์‹ ์ž
    • ๋ฉ”์‹œ์ง€๋Š” ๋ฐœ์†ก์ž โ†’ ์ˆ˜์‹ ์ž๋กœ ์ด๋™ํ•˜๋ฏ€๋กœ ๋ฌด์กฐ๊ฑด ๋‹ค์šด์ŠคํŠธ๋ฆผ์œผ๋กœ ํ๋ฆ„

๋ฉ”์‹œ์ง€์˜ ๊ฐ ๋ถ€๋ถ„

HTTP ๋ฉ”์„ธ์ง€์˜ ์„ธ ๋ถ€๋ถ„

  • ์‹œ์ž‘์ค„ (start line)
  • ํ—ค๋” (HTTP headers + empty line(CRLF))
  • ๋ณธ๋ฌธ (body)

๋ฉ”์‹œ์ง€ ๋ฌธ๋ฒ•

์š”์ฒญ ๋ฉ”์‹œ์ง€ (Request)

<๋ฉ”์„œ๋“œ> <์š”์ฒญ URL> <๋ฒ„์ „>
<ํ—ค๋”>
_๋นˆ_์ค„_
<์—”ํ‹ฐํ‹ฐ ๋ณธ๋ฌธ>
  • ๋ฉ”์„œ๋“œ(Method) : ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์„œ๋ฒ„๊ฐ€ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•ด ์ˆ˜ํ–‰ํ•ด์ฃผ๊ธธ ๋ฐ”๋ผ๋Š” ๋™์ž‘
    • GET, POST, PUT, DELETE ๋“ฑ...
  • ์š”์ฒญ URL(Request URL) : ์š”์ฒญ ๋Œ€์ƒ์ด ๋˜๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์ง€์นญํ•˜๋Š” ์™„์ „ํ•œ URL ๋˜๋Š” URL์˜ ๊ฒฝ๋กœ ๊ตฌ์„ฑ์š”์†Œ
  • ๋ฒ„์ „(Version) : ๋ฉ”์‹œ์ง€์—์„œ ์‚ฌ์šฉ ์ค‘์ธ HTTP ๋ฒ„์ „
    • HTTP/1.1, HTTP/2.0

์‘๋‹ต ๋ฉ”์‹œ์ง€ (Response)

<๋ฒ„์ „> <์ƒํƒœ ์ฝ”๋“œ> <์‚ฌ์œ  ๊ตฌ์ ˆ>
<ํ—ค๋”>
_๋นˆ_์ค„_
<์—”ํ‹ฐํ‹ฐ ๋ณธ๋ฌธ>
  • ์ƒํƒœ ์ฝ”๋“œ(Status Code) : ์š”์ฒญ ์ค‘์— ๋ฌด์—‡์ด ์ผ์–ด๋‚ฌ๋Š”์ง€ ์„ค๋ช…ํ•˜๋Š” ์„ธ ์ž๋ฆฌ ์ˆซ์ž
    • 200, 204, 301, 304, 401, 404, 500 ๋“ฑ...
  • ์‚ฌ์œ  ๊ตฌ์ ˆ(Reason Phrase) : ์ˆซ์ž๋กœ ๋œ ์ƒํƒœ ์ฝ”๋“œ์˜ ์˜๋ฏธ๋ฅผ ์‚ฌ๋žŒ์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ์„ค๋ช…ํ•ด์ฃผ๋Š” ์งง์€ ๋ฌธ๊ตฌ
    • 200 OK, 204 No Contents ๋“ฑ...
  • ํ—ค๋”๋“ค(Headers) : ์ด๋ฆ„:๊ฐ’ ์œผ๋กœ ๊ตฌ์„ฑ ๋œ ํ—ค๋” ๋ชฉ๋ก. ๋งˆ์ง€๋ง‰ ์ค„์€ ๋นˆ ์ค„๋กœ ๋๋‚จ
    • Content-type: text/plain, Content-length: 19 ๋“ฑ...
  • ์—”ํ‹ฐํ‹ฐ ๋ณธ๋ฌธ (Body) : ์—”ํ‹ฐํ‹ฐ ๋ณธ๋ฌธ์€ ์ž„์˜์˜ ๋ฐ์ดํ„ฐ ๋ธ”๋ก์„ ํฌํ•จ.
    • ์—”ํ‹ฐํ‹ฐ ๋ณธ๋ฌธ ์—†์ด ๋นˆ ์ค„๋กœ ๋๋‚˜๋Š” ๋ฉ”์‹œ์ง€๋„ ์žˆ์Œ

๋ฉ”์„œ๋“œ

์•ˆ์ „ํ•œ ๋ฉ”์„œ๋“œ

  • GET, HEAD๊ฐ€ ์•ˆ์ „ํ•œ ๋ฉ”์„œ๋“œ
  • GET, HEAD ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” HTTP ์š”์ฒญ์˜ ๊ฒฐ๊ณผ๋กœ ์„œ๋ฒ„์— ์–ด๋–ค ์ž‘์šฉ๋„ ์—†์Œ์„ ์˜๋ฏธ
  • ์ฝ๊ธฐ ์ „์šฉ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉฐ ์ดํ•ด๊ฐ€ ์‰ฌ์šธ ๋“ฏ

GET

  • ์„œ๋ฒ„์—๊ฒŒ ๋ฆฌ์†Œ์Šค๋ฅผ ๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
  • GET๊ณผ ๋น„์Šทํ•˜์ง€๋งŒ, ์„œ๋ฒ„๋Š” ์‘๋‹ต์œผ๋กœ ํ—ค๋”๋งŒ ๋Œ๋ ค ์คŒ
  • ์šฉ๋„
    • ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ€์ ธ์˜ค์ง€ ์•Š๊ณ ๋„ ๋ฌด์—‡์ธ์ง€(ํƒ€์ž…, ๊ธธ์ด ๋“ฑ...) ์•Œ์•„ ๋‚ผ ์ˆ˜ ์žˆ์Œ
    • ์‘๋‹ต์˜ ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด, ๊ฐœ์ฒด๊ฐ€ ์กด์žฌํ•˜๋Š” ํ™•์ธ ๊ฐ€๋Šฅ
    • ํ—ค๋”๋ฅผ ํ™•์ธํ•˜์—ฌ ๋ฆฌ์†Œ์Šค์˜ ๋ณ€๊ฒฝ ์—ฌ๋ถ€ ๊ฒ€์‚ฌ

PUT

  • ์„œ๋ฒ„์— ์žˆ๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐฑ์‹ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ. Body ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์•„ ์‚ฌ์šฉ

POST

  • ์„œ๋ฒ„์— ์ƒˆ๋กœ์šด ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ. Body์— ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์•„ ์‚ฌ์šฉ

DELETE

  • ์„œ๋ฒ„์— ์žˆ๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ

์ƒํƒœ ์ฝ”๋“œ

100-199: ์ •๋ณด์„ฑ ์ƒํƒœ ์ฝ”๋“œ

  • 100 Continue
    : ์š”์ฒญ์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์ด ์ผ๋ถ€๊ฐ€ ๋ฐ›์•„ ๋“ค์—ฌ ์กŒ์œผ๋ฉฐ, ํด๋ผ์ด์–ธํŠธ๋Š” ๋‚˜๋จธ์ง€๋ฅผ ๊ณ„์† ์ด์–ด์„œ ๋ณด๋‚ด์•ผ ํ•จ์„ ์˜๋ฏธ
  • 101 Switching Protocols
    : ํด๋ผ์ด์–ธํŠธ๊ฐ€ Upgrade ํ—ค๋”์— ๋‚˜์—ดํ•œ ๊ฒƒ ์ค‘ ํ•˜๋‚˜๋กœ ์„œ๋ฒ„๊ฐ€ ํ”„๋กœํ† ์ฝœ์„ ๋ฐ”๊พธ์—ˆ์Œ์„ ์˜๋ฏธ

200-299 : ์„ฑ๊ณต ์ƒํƒœ ์ฝ”๋“œ

  • 200 OK
    : ์š”์ฒญ์€ ์ •์ƒ์ด๊ณ , ์—”ํ‹ฐํ‹ฐ ๋ณธ๋ฌธ์€ ์š”์ฒญ๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์Œ
  • 201 Created
    : ์„œ๋ฒ„ ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑ ์š”์ฒญ(์˜ˆ: POST)์— ๋Œ€ํ•œ ์‘๋‹ต
  • 202 Accepted
    : ์š”์ฒญ์€ ๋ฐ›์•„ ๋“ค์—ฌ์กŒ์œผ๋‚˜ ์„œ๋ฒ„๋Š” ์•„์ง ๊ทธ์— ๋Œ€ํ•œ ์–ด๋–ค ๋™์ž‘๋„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์•˜์Œ
  • 203 Non-Authoritative Information
  • 204 No Content
    • ์‘๋‹ต ๋ฉ”์‹œ์ง€๋Š” ํ—ค๋”์™€ ์ƒํƒœ์ค„์„ ํฌํ•จํ•˜์ง€๋งŒ ์—”ํ‹ฐํ‹ฐ ๋ณธ๋ฌธ์€ ํฌํ•จํ•˜์ง€ ์•Š์Œ
    • DELETE์™€ ๊ฐ™์ด ์‹คํ–‰ ํ›„ ๋ฐ˜ํ™˜ ํ•  ๊ฐ’์ด ์—†๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ
    • GET ์š”์ฒญ ์‹œ ๋ฆฌ์†Œ์Šค๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” 200๊ณผ ํ•จ๊ป˜ ๋นˆ ๊ฐ’์„ ๋ฐ˜ํ™˜
  • 205 Reset Content
  • 206 Partial Content

300-399 : ๋ฆฌ๋‹ค์ด๋ ‰์…˜ ์ƒํƒœ ์ฝ”๋“œ

  • 300 Multiple Choices
    : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋™์‹œ์— ์—ฌ๋Ÿฌ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” URL์„ ์š”์ฒญํ•œ ๊ฒฝ์šฐ, ๊ทธ ๋ฆฌ์†Œ์Šค์˜ ๋ชฉ๋ก๊ณผ ํ•จ๊ป˜ ๋ฐ˜ํ™˜
  • 301 Moved Permanently
    : ์š”์ฒญํ•œ URL์ด ์˜ฎ๊ฒจ์กŒ์„ ๋•Œ ์‚ฌ์šฉ
  • 302 Found
  • 303 See Other
  • 304 Not Modified
    : GET๊ณผ ํ•จ๊ป˜ ์ˆ˜์ • ์ผ์— ๋Œ€ํ•œ ์กฐ๊ฑด๋ถ€ ํ—ค๋”๋ฅผ ๋ณด๋‚ธ ๊ฒฝ์šฐ. ์ˆ˜์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์‚ฌ์šฉ
  • 305 Use Proxy
  • 307 Temporary Redirect

400-499 : ํด๋ผ์ด์–ธํŠธ ์—๋Ÿฌ ์ƒํƒœ ์ฝ”๋“œ

  • 400 Bad Request
    : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ž˜๋ชป ๋œ ์š”์ฒญ์„ ๋ณด๋ƒˆ๋‹ค๊ณ  ๋งํ•ด์คŒ
  • 401 Unauthorized
    : ์ธ์ฆ์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ์•Œ๋ ค์คŒ
  • 402 Payment Required
  • 403 Forbidden
    : ์š”์ฒญ์ด ์„œ๋ฒ„์— ์˜ํ•ด ๊ฑฐ๋ถ€ ๋˜์—ˆ์Œ์„ ์•Œ๋ ค์คŒ. ๊ฑฐ๋ถ€ ๋œ ์ด์œ ๋Š” ๋ณธ๋ฌธ์— ํฌํ•จ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Œ
  • 404 Not Found
    : ์„œ๋ฒ„๊ฐ€ ์š”์ฒญํ•œ URL
  • 404 Not Found
    : ์„œ๋ฒ„๊ฐ€ ์š”์ฒญํ•œ URL์„ ์ฐพ์„ ์ˆ˜ ์—†์„ ๋•Œ ์‚ฌ์šฉ
  • 405 Method Not Allowed
    : ์š”์ฒญํ•œ URL์— ๋Œ€ํ•ด, ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋ฉ”์„œ๋“œ๋กœ ์š”์ฒญ ๋ฐ›์•˜์„ ๋•Œ ์‚ฌ์šฉ
  • 406 Not Acceptable
  • 407 Proxy Authentication Required
  • 408 Request Timeout
    : ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์™„์ˆ˜ํ•˜๊ธฐ์— ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด ๋งŽ์ด ๊ฑธ๋ฆฌ๋Š” ๊ฒฝ์šฐ, ์„œ๋ฒ„๋Š” ์ด ์ƒํƒœ ์ฝ”๋“œ๋กœ ์‘๋‹ตํ•˜๊ณ  ์—ฐ๊ฒฐ์„ ๋Š์„ ์ˆ˜ ์žˆ์Œ
  • 409 Conflict
  • 410 Gone
  • 411 Length Required
  • 412 Precondition Failed
  • 413 Request Entity Too Large
  • 414 Request URI Too Long
  • 415 Unsupported Media Type
  • 415 Requested Range Not Satisfiable
  • 417 Expectation Failed
  • 422 Unprocessable Entity
    : ํ•ด์„ ๊ฐ€๋Šฅํ•œ Content-Type์˜ ์—”ํ‹ฐํ‹ฐ์ด์ง€๋งŒ, ๋ฐ์ดํ„ฐ ํ•„๋“œ ๋“ฑ์ด ์œ ํšจํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ (ํ•˜์ง€๋งŒ ํ‘œ์ค€์€ ์•„๋‹˜)

500-599 : ์„œ๋ฒ„ ์—๋Ÿฌ ์ƒํƒœ ์ฝ”๋“œ

  • 500 Internal Server Error
    : ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๊ฒŒ ๋งŒ๋“œ๋Š” ์—๋Ÿฌ๋Š” ๋งŒ๋‚ฌ์„ ๋•Œ ์‚ฌ์šฉ
  • 501 Not Implemented
  • 502 Bad Gateway
    : Gateway๋กœ ๋ถ€ํ„ฐ ์˜ฌ๋ฐ”๋ฅธ ์‘๋‹ต์„ ๋ฐ›์ง€ ๋ชปํ–ˆ์„ ๋•Œ ์‚ฌ์šฉ
  • 503 Service Unavailable
    : ํ˜„์žฌ๋Š” ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•ด ์ค„ ์ˆ˜ ์—†์ง€๋งŒ ๋‚˜์ค‘์—๋Š” ๊ฐ€๋Šฅํ•จ์„ ์˜๋ฏธ
  • 504 Gateway Timeout
    : ๋‹ค๋ฅธ ์„œ๋ฒ„์—๊ฒŒ ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ๋‹ค๊ฐ€ ํƒ€์ž„์•„์›ƒ์ด ๋ฐœ์ƒํ•œ Gateway๋‚˜ Proxy์—์„œ ์˜จ ์‘๋‹ต
  • 505 HTTP Version Not Supported
    : ์„œ๋ฒ„๊ฐ€ ์ง€์›ํ•  ์ˆ˜ ์—†๊ฑฐ๋‚˜ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ ค๊ณ  ํ•˜๋Š” ๋ฒ„์ „์˜ ํ”„๋กœํ† ์ฝœ๋กœ ๋œ ์š”์ฒญ์„ ๋ฐ›์•˜์„ ๋•Œ

HTTP StatusCode Decision Diagram

  • ์–ด๋–ค ์ƒํ™ฉ์—์„œ ์–ด๋–ค ์ƒํƒœ ์ฝ”๋“œ๊ฐ€ ์‘๋‹ต์œผ๋กœ ๋ณด๋‚ด๋Š”์ง€ ์‹œ๊ฐํ™” ํ•œ ์ž๋ฃŒ

[์ถœ์ฒ˜ : https://github.com/for-GET/http-decision-diagram]

ํ—ค๋”

์ผ๋ฐ˜ ํ—ค๋”

  • Date : ๋ฉ”์‹œ์ง€๊ฐ€ ์–ธ์ œ ๋งŒ๋“ค์–ด ์กŒ๋Š”์ง€์— ๋Œ€ํ•œ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ์ œ๊ณต
  • Upgrade : ๋ฐœ์†ก์ž๊ฐ€ '์—…๊ทธ๋ ˆ์ด๋“œ'ํ•˜๊ธธ ์›ํ•˜๋Š” ์ƒˆ ๋ฒ„์ „์ด๋‚˜ ํ”„๋กœํ† ์ฝœ์„ ์•Œ๋ ค์คŒ
  • Via : ์ด ๋ฉ”์‹œ์ง€๊ฐ€ ์–ด๋–ค ์ค‘๊ฐœ์ž(Proxy, Gateway)๋ฅผ ๊ฑฐ์ณ ์™”๋Š”์ง€ ๋ณด์—ฌ์คŒ

์š”์ฒญ ํ—ค๋”

  • Host : ์š”์ฒญ์˜ ๋Œ€์ƒ์ด ๋˜๋Š” ์„œ๋ฒ„์˜ ํ˜ธ์ŠคํŠธ ๋ช…๊ณผ ํฌํŠธ
  • Referer : ํ˜„์žฌ์˜ ์š”์ฒญ URL์ด ๋“ค์–ด์žˆ์—ˆ๋˜ ๋ฌธ์„œ์˜ URL
  • User-Agent : ์š”์ฒญ์„ ๋ณด๋‚ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ด๋ฆ„

Accept ๊ด€๋ จ ์š”์ฒญ ํ—ค๋”

  • Accept : ์„œ๋ฒ„๊ฐ€ ๋ณด๋‚ด๋„ ๋˜๋Š” ๋ฏธ๋””์–ด ์ข…๋ฅ˜
  • Accept-Charset : ์„œ๋ฒ„๊ฐ€ ๋ณด๋‚ด๋„ ๋˜๋Š” ๋ฌธ์ž ์ง‘ํ•ฉ
  • Accept-Encoding : ์„œ๋ฒ„๊ฐ€ ๋ณด๋‚ด๋„ ๋˜๋Š” ์ธ์ฝ”๋”ฉ
  • Aceept-Language : ์„œ๋ฒ„๊ฐ€ ๋ณด๋‚ด๋„ ๋˜๋Š” ์–ธ์–ด

์กฐ๊ฑด๋ถ€ ์š”์ฒญ ํ—ค๋”

  • Expect : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญ์— ํ•„์š”ํ•œ ์„œ๋ฒ„์˜ ํ–‰๋™์„ ์—ด๊ฑฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์คŒ
  • If-Match : ๋ฌธ์„œ์˜ ์—”ํ‹ฐํ‹ฐ ํƒœ๊ทธ๊ฐ€ ์ฃผ์–ด์ง„ ์—”ํ‹ฐํ‹ฐ ํƒœ๊ทธ์™€ ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ๋ฌธ์„œ๋ฅผ ๊ฐ€์ ธ์˜ด
  • If-None-Match : ๋ฌธ์„œ์˜ ์—”ํ‹ฐํ‹ฐ ํƒœ๊ทธ๊ฐ€ ์ฃผ์–ด์ง„ ์—”ํ‹ฐํ‹ฐ ํƒœ๊ทธ์™€ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์—๋งŒ ๋ฌธ์„œ๋ฅผ ๊ฐ€์ ธ์˜ด
  • If-Modified-Since : ์ฃผ์–ด์ง„ ๋‚ ์งœ ์ดํ›„์— ๋ฆฌ์†Œ์Šค๊ฐ€ ๋ณ€๊ฒฝ ๋œ ๊ฒฝ์šฐ์—๋งŒ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ€์ ธ์˜ด
  • If-Unmodified-Since : ์ฃผ์–ด์ง„ ๋‚ ์งœ ์ดํ›„์— ๋ฆฌ์†Œ์Šค๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋งŒ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ€์ ธ์˜ด
  • If-Range : ๋ฌธ์„œ์˜ ํŠน์ • ๋ฒ”์œ„์— ๋Œ€ํ•œ ์š”์ฒญ์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์คŒ
  • Range : ์„œ๋ฒ„๊ฐ€ ๋ฒ”์œ„ ์š”์ฒญ์„ ์ง€์›ํ•œ๋‹ค๋ฉด, ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ํŠน์ • ๋ฒ”์œ„๋ฅผ ์š”์ฒญ

์š”์ฒญ ๋ณด์•ˆ ํ—ค๋”

  • Authorization : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—๊ฒŒ ์ œ๊ณตํ•˜๋Š” ์ธ์ฆ ๊ทธ ์ž์ฒด์— ๋Œ€ํ•œ ์ •๋ณด (์˜ˆ: JWT Token, OAuth Token ๋“ฑ)
  • Cookie : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—๊ฒŒ ํ† ํฐ์„ ์ „๋‹ฌํ•  ๋•Œ ์‚ฌ์šฉ
  • Cookie2 : ์š”์ฒญ์ž๊ฐ€ ์ง€์›ํ•˜๋Š” ์ฟ ํ‚ค์˜ ๋ฒ„์ „์„ ์•Œ๋ ค์ค„ ๋•Œ ์‚ฌ์šฉ

์‘๋‹ต ํ—ค๋”

  • Age : ์‘๋‹ต์ด ์–ผ๋งˆ๋‚˜ ์˜ค๋ž˜ ๋˜์—ˆ๋Š”์ง€
  • Public : ์„œ๋ฒ„๊ฐ€ ํŠน์ • ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•ด ์ง€์›ํ•˜๋Š” ์š”์ฒญ ๋ฉ”์„œ๋“œ์˜ ๋ชฉ๋ก
  • Retry-After : ํ˜„์žฌ ๋ฆฌ์†Œ์Šค๊ฐ€ ์‚ฌ์šฉ ๋ถˆ๊ฐ€๋Šฅํ•œ ์ƒํƒœ์ผ ๋•Œ, ์–ธ์ œ ๊ฐ€๋Šฅํ•ด์ง€๋Š”์ง€ ๋‚ ์งœ ํ˜น์€ ์‹œ๊ฐ
  • Server : ์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ด๋ฆ„๊ณผ ๋ฒ„์ „
  • Title : HTML ๋ฌธ์„œ์—์„œ ์ฃผ์–ด์ง„ ๊ฒƒ๊ณผ ๊ฐ™์€ ์ œ๋ชฉ
  • Warning : ์‚ฌ์œ  ๊ตฌ์ ˆ์— ์žˆ๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ์ž์„ธํ•œ ๊ฒฝ๊ณ  ๋ฉ”์„ธ์ง€

ํ˜‘์ƒ ํ—ค๋”

  • Accept-Ranges : ์„œ๋ฒ„๊ฐ€ ์ž์›์— ๋Œ€ํ•ด ๋ฐ›์•„๋“ค์ผ ์ˆ˜ ์žˆ๋Š” ๋ฒ”์œ„์˜ ํ˜•ํƒœ
  • Vary : ์„œ๋ฒ„๊ฐ€ ํ™•์ธํ•ด ๋ณด์•„์•ผ ํ•˜๊ณ  ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์‘๋‹ต์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ๋Š” ํ—ค๋”๋“ค์˜ ๋ชฉ๋ก. ์˜ˆ) ๊ถŒํ•œ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ Access-Control-Request-Method, Access-Control-Request-Headers, Origin

์‘๋‹ต ๋ณด์•ˆ ํ—ค๋”

  • Proxy-Authenticate : Proxy์—์„œ ํด๋ผ์ด์–ธํŠธ๋กœ ๋ณด๋‚ธ ์ธ์ฆ์š”๊ตฌ์˜ ๋ชฉ๋ก
  • Set-Cookie : ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์ธ์ฆํ•  ์ˆ˜ ์žˆ๋„๋ก ํด๋ผ์ด์–ธํŠธ ์ธก์— ํ† ํฐ์„ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
  • WWW-Authenticate : ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ๋กœ ๋ณด๋‚ธ ์ธ์ฆ์š”๊ตฌ ๋ชฉ๋ก

์—”ํ‹ฐํ‹ฐ ํ—ค๋”

  • Allow : ์ด ์—”ํ‹ฐํ‹ฐ์— ๋Œ€ํ•ด ์ˆ˜ํ–‰๋  ์ˆ˜ ์žˆ๋Š” ์š”์ฒญ ๋ฉ”์„œ๋“œ ๋ชฉ๋ก
  • Location : ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์—”ํ‹ฐํ‹ฐ๊ฐ€ ์–ด๋””์— ์œ„์น˜ํ•˜๊ณ  ์žˆ๋Š”์ง€ ์•Œ๋ ค์คŒ

์ฝ˜ํ…์ธ  ํ—ค๋”

  • Content-Base : ๋ณธ๋ฌธ์—์„œ ์‚ฌ์šฉ ๋œ ์ƒ๋Œ€ URL์„ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•œ Base URL
  • Content-Encoding : ๋ณธ๋ฌธ์— ์ ์šฉ ๋œ ์ธ์ฝ”๋”ฉ
  • Content-Language : ๋ณธ๋ฌธ์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•œ ์–ธ์–ด
  • Content-Length : ๋ณธ๋ฌธ์˜ ๊ธธ์ด๋‚˜ ํฌ๊ธฐ
  • Content-Location : ๋ฆฌ์†Œ์Šค์˜ ์‹ค์ œ ์œ„์น˜
  • Content-MD5 : ๋ณธ๋ฌธ์˜ MD5 ์ฒดํฌ์„ฌ
  • Content-Range : ์ „์ฒด ๋ฆฌ์†Œ์Šค์—์„œ ์ด ์—”ํ‹ฐํ‹ฐ๊ฐ€ ํ•ด๋‹นํ•˜๋Š” ๋ฒ”์œ„๋ฅผ ๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ํ‘œํ˜„
  • Content-Type : ๋ณธ๋ฌธ์˜ ๊ฐ์ฒด ์ข…๋ฅ˜

์—”ํ‹ฐํ‹ฐ ์บ์‹ฑ ํ—ค๋”

  • ETag : ์—”ํ‹ฐํ‹ฐ์— ๋Œ€ํ•œ ์—”ํ‹ฐํ‹ฐ ํƒœ๊ทธ (AWS S3์—์„œ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ์‚ฌ์šฉํ–ˆ๋˜ ๊ฒƒ ๊ฐ™์Œ)
  • Expires : ์—”ํ‹ฐํ‹ฐ์˜ ๋งŒ๋ฃŒ ์ผ์‹œ
  • Last-Modified : ๊ฐ€์žฅ ์ตœ๊ทผ ์—”ํ‹ฐํ‹ฐ๊ฐ€ ๋ณ€๊ฒฝ๋œ ์ผ์‹œ
profile
๊ธฐ์ดˆ๊ฐ€ ํƒ„ํƒ„ํ•œ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋ฅผ ๊ฟˆ๊ฟ‰๋‹ˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€