[HTTP] HTTP ํ—ค๋” - (1) ์ผ๋ฐ˜ ํ—ค๋”

2022. 3. 14. 13:11ยทWEB

๐Ÿ“Œ HTTP ํ—ค๋”

โœ… ์šฉ๋„

  • HTTP ์ „์†ก์— ํ•„์š”ํ•œ ๋ชจ๋“  ๋ถ€๊ฐ€์ •๋ณด๋ฅผ ๋‹ด์Œ
  • e.g ๋ฉ”์„ธ์ง€ ๋ฐ”๋””์˜ ๋‚ด์šฉ, ๋ฉ”์„ธ์ง€ ๋ฐ”๋””์˜ ํฌ๊ธฐ, ์••์ถ•, ์ธ์ฆ, ์š”์ฒญ ํด๋ผ์ด์–ธํŠธ, ์„œ๋ฒ„ ์ •๋ณด, ์บ์‹œ ๊ด€๋ฆฌ ์ •๋ณด ๋“ฑ
  • ํ‘œ์ค€ ํ—ค๋” ๋„ˆ๋ฌด ๋งŽ์Œ
  • ํ•„์š”์‹œ ์ž„์˜์˜ ํ—ค๋” ์ถ”๊ฐ€ ๊ฐ€๋Šฅ

 

โœ… ๋ถ„๋ฅ˜ - RFC2616(๊ณผ๊ฑฐ)  ํ๊ธฐ

  • General ํ—ค๋” : ์š”์ฒญ ๋ฉ”์„ธ์ง€, ์‘๋‹ต ๋ฉ”์„ธ์ง€์™€ ์ƒ๊ด€์—†์ด ๋ฉ”์„ธ์ง€ ์ „์ฒด์— ์ ์šฉ๋˜๋Š” ์ •๋ณด e.g. Connection: close
  • Request ํ—ค๋” : ์š”์ฒญ ์ •๋ณด e.g. User-Agent: Mozilla/5.0 (Macintosh; ..) ์›น๋ธŒ๋ผ์šฐ์ € ์ •๋ณด
  • Response ํ—ค๋” : ์‘๋‹ต ์ •๋ณด e.g. Server: Apache
  • Entity ํ—ค๋” : ์—”ํ‹ฐํ‹ฐ ๋ฐ”๋”” ์ •๋ณด e.g. Content-Type: text/html, Content-Length: 3423

 

 

โœ… RFC723x ๋ณ€ํ™” (์ตœ์‹ )

  • ์—”ํ‹ฐํ‹ฐ -> ํ‘œํ˜„(Representation)
  • ํ‘œํ˜„(Representation) = ํ‘œํ˜„ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ + ํ‘œํ˜„ ๋ฐ์ดํ„ฐ
  • ํ‘œํ˜„ : ์š”์ฒญ์ด๋‚˜ ์‘๋‹ต์—์„œ ์ „๋‹ฌํ•  ์‹ค์ œ ๋ฐ์ดํ„ฐ
  • ํ‘œํ˜„ ํ—ค๋”๋Š” ํ‘œํ˜„ ๋ฐ์ดํ„ฐ๋ฅผ ํ•ด์„ํ•  ์ˆ˜ ์žˆ๋Š” ์ •๋ณด ์ œ๊ณต
  • ๋ฉ”์„ธ์ง€ ๋ฐ”๋””๋ฅผ ํ†ตํ•ด ํ‘œํ˜„ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ
  • ๋ฉ”์„ธ์ง€ ๋ฐ”๋””๋ฅผ ํŽ˜์ด๋กœ๋“œ ๋ผ๊ณ ๋„ ํ•จ

 

๐Ÿ“Œ ํ‘œํ˜„ ํ—ค๋”์˜ ๊ตฌ์„ฑ ์š”์†Œ

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

  • ๋ฏธ๋””์–ด ํƒ€์ž…, ๋ฌธ์ž ์ธ์ฝ”๋”ฉ
  • e.g. text/html; charset=utf-8, application/json, image/png

 

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

  • ํ‘œํ˜„ ๋ฐ์ดํ„ฐ๋ฅผ ์••์ถ•ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
  • ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๊ณณ์—์„œ ์••์ถ• ํ›„ ์ธ์ฝ”๋”ฉ ํ—ค๋” ์ถ”๊ฐ€
  • ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š” ์ชฝ์—์„œ ์ธ์ฝ”๋”ฉ ํ—ค๋”์˜ ์ •๋ณด๋กœ ์••์ถ• ํ•ด์ œ
  • e.g. gzip, deflate, identity

 

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

  • ํ‘œํ˜„ ๋ฐ์ดํ„ฐ์˜ ์ž์—ฐ ์–ธ์–ด๋ฅผ ํ‘œํ˜„
  • e.g. ko, en, en-US

 

โœ… Content-Length : ํ‘œํ˜„ ๋ฐ์ดํ„ฐ์˜ ๊ธธ์ด

  • ๋ฐ”์ดํŠธ ๋‹จ์œ„
  • ์ „์†ก ์ฝ”๋”ฉ(Transfer-Encoding)์„ ์‚ฌ์šฉํ•˜๋ฉด Content-Length๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋จ

 

๐Ÿ“Œ ํ˜‘์ƒ(์ฝ˜ํ…์ธ  ๋„ค๊ณ ์‹œ์—์ด์…˜)

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„ ํ˜ธํ•˜๋Š” ํ‘œํ˜„์„ ์š”์ฒญํ•  ์ˆ˜ ์žˆ๊ณ  ์„œ๋ฒ„๋Š” ์š”์ฒญ ์‚ฌํ•ญ์„ ์ตœ๋Œ€ํ•œ ๋งž์ถฐ์ค„ ์ˆ˜ ์žˆ๋‹ค. ํ˜‘์ƒ ํ—ค๋”๋Š” ์š”์ฒญ ์‹œ์—๋งŒ ์‚ฌ์šฉํ•œ๋‹ค.

  • Accept : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„ ํ˜ธํ•˜๋Š” ๋ฏธ๋””์–ด ํƒ€์ž… ์ „๋‹ฌ
  • Accept-Charset : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„ ํ˜ธํ•˜๋Š” ๋ฌธ์ž ์ธ์ฝ”๋”ฉ
  • Accept-Encoding : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„ ํ˜ธํ•˜๋Š” ์••์ถ• ์ธ์ฝ”๋”ฉ
  • Accept-Language : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„ ํ˜ธํ•˜๋Š” ์ž์—ฐ ์–ธ์–ด

 

โœ… ํ˜‘์ƒ๊ณผ ์šฐ์„ ์ˆœ์œ„

  • Quality Values(q) ๊ฐ’ ์‚ฌ์šฉ
  • 0~1 ํด์ˆ˜๋ก ๋†’์€ ์šฐ์„ ์ˆœ์œ„ (์ƒ๋žต์‹œ 1)

 

๐Ÿ“Œ ์ „์†ก ๋ฐฉ์‹

โœ… ๋‹จ์ˆœ ์ „์†ก

  • Content-Length๋ฅผ ์•Œ ์ˆ˜ ์žˆ์„ ๋•Œ ์‚ฌ์šฉ
  • ํ•œ๋ฒˆ์— ์š”์ฒญํ•˜๊ณ  ํ•œ๋ฒˆ์— ๋ฐ›์Œ

 

โœ… ์••์ถ• ์ „์†ก

  • Content-encoding์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์••์ถ• ์ •๋ณด์™€ ํ•จ๊ป˜ ๋ฉ”์„ธ์ง€ ๋ฐ”๋””๋ฅผ ์••์ถ•
  • ๋ณดํ†ต ์šฉ๋Ÿ‰์ด ์ ˆ๋ฐ˜ ์ด์ƒ ์ค„์–ด๋“œ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ

 

โœ… ๋ถ„ํ•  ์ „์†ก

  • Transfer Encoding: chunked ์‚ฌ์šฉ
  • ๋ฉ”์„ธ์ง€ ๋ฐ”๋””๋ฅผ ๋‚˜๋ˆ„์–ด์„œ ๋ณด๋ƒ„
  • ๊ฐ chunk๋งˆ๋‹ค ๊ธธ์ด๊ฐ€ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— Content-Length ์ •๋ณด๋ฅผ ๋ณด๋‚ด๋ฉด ์•ˆ๋จ -> ์ „์ฒด ๊ธธ์ด ์˜ˆ์ƒ ๋ถˆ๊ฐ€

 

โœ… ๋ฒ”์œ„ ์ „์†ก

  • ๋ฆฌ์†Œ์Šค๋ฅผ ์žฌ์š”์ฒญํ•  ๋•Œ ์ „์†ก๋˜์ง€ ์•Š์€ ์ผ๋ถ€(๋ฒ”์œ„)๋งŒ ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Œ

 

๐Ÿ“Œ ์ผ๋ฐ˜ ์ •๋ณด

โœ… From

  • ์œ ์ € ์—์ด์ „ํŠธ์˜ ์ด๋ฉ”์ผ ์ •๋ณด
  • ๊ฒ€์ƒ‰ ์—”์ง„ ๊ฐ™์€ ๊ณณ์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉ
  • ์š”์ฒญ์—์„œ ์‚ฌ์šฉ
  • ์ผ๋ฐ˜์ ์œผ๋กœ ์ž˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ

 

โœ… Referer

  • ๋งŽ์ด ์‚ฌ์šฉํ•จ
  • ํ˜„์žฌ ์š”์ฒญ๋œ ํŽ˜์ด์ง€์˜ ์ด์ „ ์›น ํŽ˜์ด์ง€ ์ฃผ์†Œ (๋’ค๋กœ๊ฐ€๊ธฐ ๊ฐ™์€ ๋А๋‚Œ)
  • A -> B๋กœ ์ด๋™ํ•˜๋Š” ๊ฒฝ์šฐ B๋ฅผ ์š”์ฒญํ•  ๋•Œ Referer: A๋ฅผ ํฌํ•จํ•ด์„œ ์š”์ฒญ
  • ์œ ์ž… ๊ฒฝ๋กœ๋ฅผ ๋ถ„์„ํ• ๋•Œ ๋งŽ์ด ์‚ฌ์šฉ
  • ์š”์ฒญ์—์„œ ์‚ฌ์šฉ

 

โœ… User Agent

  • ํด๋ผ์ด์–ธํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ •๋ณด(์›น ๋ธŒ๋ผ์šฐ์ € ์ •๋ณด ๋“ฑ)
  • ํ†ต๊ณ„ ์ •๋ณด ์ถ”์ถœ์‹œ ์‚ฌ์šฉ
  • ์–ด๋–ค ์ข…๋ฅ˜์˜ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”์ง€ ํŒŒ์•… ๊ฐ€๋Šฅ
  • ์š”์ฒญ์—์„œ ์‚ฌ์šฉ

 

โœ… Server

  • ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ORIGIN ์„œ๋ฒ„์˜ ์†Œํ”„ํŠธ์›จ์–ด ์ •๋ณด
  • ORIGIN ์„œ๋ฒ„ : ํ”„๋ก์‹œ ์„œ๋ฒ„, ์บ์‹œ ์„œ๋ฒ„ ๋“ฑ์ด ์•„๋‹Œ ์‹ค์ œ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์„œ๋ฒ„
  • ์‘๋‹ต์—์„œ ์‚ฌ์šฉ

 

โœ… Date

  • ๋ฉ”์„ธ์ง€๊ฐ€ ๋ฐœ์ƒํ•œ ๋‚ ์งœ์™€ ์‹œ๊ฐ„
  • ์‘๋‹ต์—์„œ ์‚ฌ์šฉ

 

๐Ÿ“Œ ํŠน๋ณ„ํ•œ ์ •๋ณด

โœ… Host

  • ์š”์ฒญํ•œ ํ˜ธ์ŠคํŠธ ์ •๋ณด(๋„๋ฉ”์ธ)
  • ์š”์ฒญ์—์„œ ์‚ฌ์šฉ
  • ํ•„์ˆ˜ ๊ฐ’
  • ํ•˜๋‚˜์˜ ์„œ๋ฒ„๊ฐ€ ์—ฌ๋Ÿฌ ๋„๋ฉ”์ธ์„ ์ฒ˜๋ฆฌํ•ด์•ผ ํ• ๋•Œ ์‚ฌ์šฉ
  • ํ•˜๋‚˜์˜ IP์ฃผ์†Œ์— ์—ฌ๋Ÿฌ ๋„๋ฉ”์ธ์ด ์ ์šฉ๋˜์–ด ์žˆ์„๋•Œ ์‚ฌ์šฉ

 

 

โœ… Location

  • ํŽ˜์ด์ง€ ๋ฆฌ๋‹ค์ด๋ ‰์…˜
  • ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” 3xx ์‘๋‹ต ๊ฒฐ๊ณผ์— Location ํ—ค๋”๊ฐ€ ์žˆ์œผ๋ฉด Location ์œ„์น˜๋กœ ์ž๋™ ์ด๋™(๋ฆฌ๋‹ค์ด๋ ‰ํŠธ)
  • 201 (Created) : Location ๊ฐ’์€ ์š”์ฒญ์— ์˜ํ•ด ์ƒ์„ฑ๋œ ๋ฆฌ์†Œ์Šค URI
  • 3xx (Redirection) : Location ๊ฐ’์€ ์š”์ฒญ์„ ์ž๋™์œผ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ ํ•˜๊ธฐ ์œ„ํ•œ ๋Œ€์ƒ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ€๋ฆฌํ‚ด

 

โœ… Allow

  • ํ—ˆ์šฉ ๊ฐ€๋Šฅํ•œ HTTP ๋ฉ”์„œ๋“œ๋ฅผ ๋‚˜ํƒ€๋ƒ„
  • 405 Method Not Allowed์—์„œ ์‘๋‹ต์— ํฌํ•จํ•ด์•ผํ•จ
  • POST๋ฅผ ๋นผ๊ณ  ์š”์ฒญํ•œ๋‹ค๋ฉด -> Allow : GET, HEAD, PUT
  • ๋งŽ์ด ๊ตฌํ˜„๋˜์–ด ์žˆ์ง€๋Š” ์•Š์Œ

 

โœ… Retry-After

  • ์œ ์ € ์—์ด์ „ํŠธ๊ฐ€ ๋‹ค์Œ ์š”์ฒญ์„ ํ•˜๊ธฐ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผ ํ•˜๋Š” ์‹œ๊ฐ„
  • 503 (Service Unavailable): ์„œ๋น„์Šค๊ฐ€ ์–ธ์ œ๊นŒ์ง€ ๋ถˆ๋Šฅ์ธ์ง€ ์•Œ๋ ค์ค„ ์ˆ˜ ์žˆ์Œ
  • ์ดˆ๋‹จ์œ„, ๋‚ ์งœ ๋‹จ์œ„๋กœ ํ‘œ๊ธฐํ•  ์ˆ˜ ์žˆ์Œ

 

๐Ÿ“Œ ์ธ์ฆ

  • Authorization
    • ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ ์ •๋ณด๋ฅผ ์„œ๋ฒ„์— ์ „๋‹ฌ
    • ์ธ์ฆ์˜ ์ข…๋ฅ˜๋งˆ๋‹ค value๊ฐ€ ๋‹ค๋ฆ„
  • WWW-Authenticate
    • ๋ฆฌ์†Œ์Šค ์ ‘๊ทผ์‹œ ํ•„์š”ํ•œ ์ธ์ฆ ๋ฐฉ๋ฒ• ์ •์˜
    • 401 Unauthorized ์‘๋‹ต๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ
    • ์ œ๋Œ€๋กœ ๋œ ์ธ์ฆ ์ •๋ณด๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณต

 

๐Ÿ“Œ ์ฟ ํ‚ค

  • Set-Cookie : ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ๋กœ ์ฟ ํ‚ค ์ „๋‹ฌ(์‘๋‹ต)
  • Cookie : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—์„œ ๋ฐ›์€ ์ฟ ํ‚ค๋ฅผ ์ €์žฅํ•˜๊ณ  HTTP ์š”์ฒญ์‹œ ์„œ๋ฒ„๋กœ ์ „๋‹ฌ

 

โœ… ์ฟ ํ‚ค๋ฅผ ๋ฏธ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ

  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋กœ๊ทธ์ธ์„ ํ•˜๊ณ  ์ƒˆ๋กœ์šด ์š”์ฒญ์„ ํ•˜๋ฉด ์„œ๋ฒ„๋Š” ๋กœ๊ทธ์ธํ•œ ์ƒํƒœ๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ๋ชปํ•จ
  • HTTP๋Š” ๋ฌด์ƒํƒœ ํ”„๋กœํ† ์ฝœ์ด๊ธฐ ๋•Œ๋ฌธ
  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋‹ค์‹œ ์š”์ฒญํ•˜๋ฉด ์„œ๋ฒ„๋Š” ์ด์ „ ์š”์ฒญ์„ ๊ธฐ์–ตํ•˜์ง€ ๋ชปํ•จ
  • ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋Š” ์„œ๋กœ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š์Œ

์ด์— ๋Œ€ํ•œ ๋Œ€์•ˆ์œผ๋กœ ๋ชจ๋“  ์š”์ฒญ์— ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ํฌํ•จ์‹œ์ผœ ๋ณด๋‚ธ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž → ๋ณด์•ˆ ๋ฌธ์ œ ๋ฐœ์ƒ

 

โœ… ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ

์‚ฌ์šฉ์ž ๋กœ๊ทธ์ธ ์„ธ์…˜ ๊ด€๋ฆฌ, ๊ด‘๊ณ  ์ •๋ณด ํŠธ๋ž˜ํ‚น์— ์‚ฌ์šฉ๋จ

 

1๏ธโƒฃ ๋กœ๊ทธ์ธ

 

  • ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋กœ๊ทธ์ธ์„ ํ•˜๊ณ  ์š”์ฒญ ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋ƒ„
  • ์„œ๋ฒ„๋Š” Set-Cookie ํ—ค๋”๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ •๋ณด๋ฅผ ๋‹ด์•„ ์‘๋‹ต
  • ์›น ๋ธŒ๋ผ์šฐ์ € ๋‚ด๋ถ€์˜ ์ฟ ํ‚ค ์ €์žฅ์†Œ์— ์‘๋‹ต ๋ฉ”์„ธ์ง€๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ์ •๋ณด๊ฐ€ ์ €์žฅ๋จ

 

2๏ธโƒฃ ๋กœ๊ทธ์ธ ์ดํ›„ welcome ํŽ˜์ด์ง€ ์ ‘๊ทผ

  • ์ด ํ›„ ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ๋งˆ๋‹ค ์ฟ ํ‚ค ์ €์žฅ์†Œ์—์„œ ์ฟ ํ‚ค๋ฅผ ์กฐํšŒํ•จ
  • ์š”์ฒญ ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋‚ผ ๋•Œ Cookie ํ—ค๋” ์ถ”๊ฐ€ํ•ด์„œ ์„œ๋ฒ„์— ์ „์†ก (์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ๋‚˜ URL์— ์ถ”๊ฐ€ํ•  ํ•„์š”๊ฐ€ ์—†์Œ)

 

3๏ธโƒฃ ๋ชจ๋“  ์š”์ฒญ์— ์ฟ ํ‚ค ์ •๋ณด ์ž๋™ ํฌํ•จ

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

โ€ป ์ฃผ์˜ โ€ป : ๋ณด์•ˆ์— ๋ฏผ๊ฐํ•œ ์ •๋ณด(e.g. ์ฃผ๋ฏผ๋ฒˆํ˜ธ, ์‹ ์šฉ์นด๋“œ ๋ฒˆํ˜ธ ๋“ฑ)๋Š” ์ €์žฅํ•˜๋ฉด ์•ˆ๋จ

 

โœ… ์ฟ ํ‚ค ์ƒ๋ช… ์ฃผ๊ธฐ

  • Set-Cookie: expires=Sat, 26-Dec-2020 04:39:21 GMT
  • ๋งŒ๋ฃŒ์ผ์ด ๋˜๋ฉด ์ฟ ํ‚ค ์‚ญ์ œ
  • Set-Cookie: max-age=3600 (3600์ดˆ)
  • ์ง€์ • ์‹œ๊ฐ„์ด ์ง€๋‚˜๊ฑฐ๋‚˜ 0 ๋˜๋Š” ์Œ์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋ฉด ์ฟ ํ‚ค ์‚ญ์ œ
  • ์„ธ์…˜ ์ฟ ํ‚ค : ๋งŒ๋ฃŒ ๋‚ ์งœ๋ฅผ ์ƒ๋žตํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ € ์ข…๋ฃŒ์‹œ ๊นŒ์ง€๋งŒ ์œ ์ง€
  • ์˜์† ์ฟ ํ‚ค : ๋งŒ๋ฃŒ ๋‚ ์งœ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ํ•ด๋‹น ๋‚ ์งœ๊นŒ์ง€ ์œ ์ง€

 

โœ… ์ฟ ํ‚ค ๋„๋ฉ”์ธ ์ง€์ •

  • e.g. domain=example.org
  • ๋ช…์‹œํ•œ ๊ฒฝ์šฐ : ๋ช…์‹œํ•œ ๋ฌธ์„œ ๊ธฐ์ค€ ๋„๋ฉ”์ธ + ์„œ๋ธŒ ๋„๋ฉ”์ธ ํฌํ•จ
    • example.org, dev.example.org์—์„œ ์ฟ ํ‚ค ์ ‘๊ทผ
  • ์ƒ๋žตํ•œ ๊ฒฝ์šฐ : ํ˜„์žฌ ๋ฌธ์„œ ๊ธฐ์ค€ ๋„๋ฉ”์ธ๋งŒ ์ ์šฉ
    • example.org์—์„œ๋งŒ ์ฟ ํ‚ค ์ ‘๊ทผ
    • dev.example.org๋Š” ์ฟ ํ‚ค ๋ฏธ์ ‘๊ทผ

 

โœ… ์ฟ ํ‚ค ๊ฒฝ๋กœ ์ง€์ •

  • e.g. paht=/home
  • ์ด ๊ฒฝ๋กœ๋ฅผ ํฌํ•จํ•œ ํ•˜์œ„ ๊ฒฝ๋กœ ํŽ˜์ด์ง€๋งŒ ์ฟ ํ‚ค ์ ‘๊ทผ
  • ์ผ๋ฐ˜์ ์œผ๋กœ path=/ ๋ฃจํŠธ๋กœ ์ง€์ •

 

โœ… ์ฟ ํ‚ค ๋ณด์•ˆ ์„ค์ •

๐Ÿ”ป Secure

  • ์„ค์ •ํ•ด์ฃผ์ง€ ์•Š์œผ๋ฉด ์ฟ ํ‚ค๋Š” http, https๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๊ณ  ์ „์†ก
  • Secure๋ฅผ ์ ์šฉํ•˜๋ฉด https์ธ ๊ฒฝ์šฐ์—๋งŒ ์ „์†ก

 

๐Ÿ”ป HttpOnly

  • XSS ๊ณต๊ฒฉ ๋ฐฉ์ง€
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ(doument.cookie)๋กœ ํ•ด๋‹น ๋กœ์ปฌ PC์— ์ €์žฅ๋œ ์ฟ ํ‚ค๋ฅผ ์กฐํšŒํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๋ง‰์Œ
  • HTTP ์ „์†ก์—๋งŒ ์‚ฌ์šฉ (์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ™์€ ์™ธ๋ถ€ ํ”„๋กœ๊ทธ๋žจ ์ ‘๊ทผ ๋ถˆ๊ฐ€)

 

๐Ÿ”ป SameSite

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

 


๊ฐ•์˜ ์ž๋ฃŒ

 

๋ชจ๋“  ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ HTTP ์›น ๊ธฐ๋ณธ ์ง€์‹ - ์ธํ”„๋Ÿฐ | ๊ฐ•์˜

์‹ค๋ฌด์— ๊ผญ ํ•„์š”ํ•œ HTTP ํ•ต์‹ฌ ๊ธฐ๋Šฅ๊ณผ ์˜ฌ๋ฐ”๋ฅธ HTTP API ์„ค๊ณ„ ๋ฐฉ๋ฒ•์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค., - ๊ฐ•์˜ ์†Œ๊ฐœ | ์ธํ”„๋Ÿฐ...

www.inflearn.com

 

์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'WEB' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[HTTP] HTTP ํ—ค๋” - (2) ์บ์‹œ์™€ ์กฐ๊ฑด๋ถ€ ์š”์ฒญ  (0) 2022.03.14
[HTTP] HTTP ์ƒํƒœ์ฝ”๋“œ  (0) 2022.03.13
[HTTP] HTTP ๋ฉ”์„œ๋“œ ํ™œ์šฉ  (0) 2022.03.13
'WEB' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [HTTP] HTTP ํ—ค๋” - (2) ์บ์‹œ์™€ ์กฐ๊ฑด๋ถ€ ์š”์ฒญ
  • [HTTP] HTTP ์ƒํƒœ์ฝ”๋“œ
  • [HTTP] HTTP ๋ฉ”์„œ๋“œ ํ™œ์šฉ
  • [HTTP] API URI ์„ค๊ณ„์™€ HTTP ๋ฉ”์„œ๋“œ
Sue
Sue
๊ฐœ๋ฐœ ๊ณต๋ถ€ ๋กœ๊ทธ
  • Sue
    Sue's devlog
    Sue
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (122)
      • Algorithm (2)
      • WEB (8)
      • Java & Kotlin (83)
      • Spring (26)
      • Database (1)
      • Infra (0)
      • Git (1)
      • devlog (1)
  • ์ธ๊ธฐ ๊ธ€

  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
Sue
[HTTP] HTTP ํ—ค๋” - (1) ์ผ๋ฐ˜ ํ—ค๋”
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”