HTTP์˜ ์‚ฌ์šฉ์ž ์‹๋ณ„ ๊ธฐ์ˆ 

December 16, 2022์— ์ž‘์„ฑ ยท January 1, 1970์— ๋ณ€๊ฒฝ๋จ

HTTP ์™„๋ฒฝ ๊ฐ€์ด๋“œ๋ฅผ ์ฝ๊ณ  ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.

HTTP๋Š” ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š๋Š” ํ”„๋กœํ† ์ฝœ์ธ๋ฐ (๋งค ์š”์ฒญ์ด ์ผํšŒ์„ฑ์ด๊ณ  ๋…๋ฆฝ์ ์ด๋‹ค) ์‚ฌ์šฉ์ž๋ฅผ ์‹๋ณ„ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ• ๊นŒ?

์‚ฌ์šฉ์ž ์‹๋ณ„ ๊ธฐ์ˆ 

์‚ฌ์šฉ์ž ์‹๋ณ„์„ ์œ„ํ•ด ์กด์žฌํ•˜๋Š” HTTP ํ—ค๋”๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

ํ—ค๋” ์ด๋ฆ„ํ—ค๋” ํƒ€์ž…์„ค๋ช…
From์š”์ฒญ์‚ฌ์šฉ์ž์˜ ์ด๋ฉ”์ผ ์ฃผ์†Œ
User-Agent์š”์ฒญ์‚ฌ์šฉ์ž์˜ ๋ธŒ๋ผ์šฐ์ €
*Referer์š”์ฒญ์‚ฌ์šฉ์ž๊ฐ€ ํ˜„์žฌ ๋งํฌ๋ฅผ ํƒ€๊ณ  ์˜จ ์›๋ž˜ ์ฃผ์†Œ
Authorization์š”์ฒญ์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ
Client-ipํ™•์žฅ(์š”์ฒญ)ํด๋ผ์ด์–ธํŠธ IP ์ฃผ์†Œ
X-Forwarded-Forํ™•์žฅ(์š”์ฒญ)ํด๋ผ์ด์–ธํŠธ IP ์ฃผ์†Œ
Cookieํ™•์žฅ(์š”์ฒญ)์„œ๋ฒ„๊ฐ€ ์ƒ์„ฑ

*์˜๋ฌธ๋ฒ• ์ƒ Referrer์ด ๋งž์ง€๋งŒ ์ฒ˜์Œ ์ด๋ฅผ ์ •์˜ํ•œ RFC์—์„œ referer๋กœ ์˜คํƒ€๋ฅผ ๋‚ด๋ฒ„๋ ค์„œ ์ด ๋‹จ์–ด๋กœ ๊ตณ์–ด์กŒ๋‹ค.

  • ํ˜„์žฌ From ํ—ค๋”๋Š” ์ŠคํŒธ ๋งค์ผ ๋“ฑ์˜ ์ด์Šˆ๋กœ ์ž˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ํ•œ๋‹ค - ๋กœ๋ด‡์ด๋‚˜ ์ŠคํŒŒ์ด๋”๋Š” ์ œ์™ธ
  • User-Agent๋Š” ๋ธŒ๋ผ์šฐ์ €์— ๋”ฐ๋ผ ์‚ฌ์šฉ์ž ์นœํ™”์ ์ธ ์ฝ˜ํ…์ธ ๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•จ์ด๋‹ค.

ํด๋ผ์ด์–ธํŠธ IP๋ฅผ ์“ด๋‹ค๋ฉด?

ํ—ค๋”์—๋Š” ์—†์ง€๋งŒ, HTTP๋Š” TCP์ด๋ฏ€๋กœ ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ์˜ IP๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ์  ๋•Œ๋ฌธ์— ๋ณดํ†ต ํด๋ผ์ด์–ธํŠธ IP๋กœ ์‚ฌ์šฉ์ž๋ฅผ ์‹๋ณ„ํ•˜์ง„ ์•Š๋Š”๋‹ค.

  • IP โ‰  ์‚ฌ์šฉ์ž์ด๋ฏ€๋กœ ์‚ฌ์šฉ์ž๋ฅผ ์‹๋ณ„ํ•  ์ˆœ ์—†๋‹ค
  • ๋Œ€๋ถ€๋ถ„์˜ ISP๋Š” ๋™์ ์œผ๋กœ IP์ฃผ์†Œ๋ฅผ ํ• ๋‹นํ•œ๋‹ค
  • ์‚ฌ์šฉ์ž๊ฐ€ NAT ๋’ค์— ์žˆ๋‹ค๋ฉด ๊ฐœ๊ฐœ์ธ์„ ์‹๋ณ„ํ•  ์ˆ˜ ์—†๋‹ค (ํ•˜๋‚˜์˜ IP ์ฃผ์†Œ์ด๊ธฐ ๋•Œ๋ฌธ)
  • ํ”„๋ฝ์‹œ๋‚˜ ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์›น์„œ๋ฒ„๊ฐ€ ์•„๋Š” IP๋Š” ์‹ค์ œ ํด๋ผ์ด์–ธํŠธ์˜ IP๊ฐ€ ์•„๋‹ˆ๋‹ค.

HTTP ๊ธฐ๋ณธ ์ธ์ฆ

HTTP๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›ํ•˜๋Š” ์ธ์ฆ ๋ฐฉ๋ฒ•์ด๋‹ค. ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋กœ๊ทธ์ธ ์ฐฝ์ด ๋„์›Œ์ง€๊ณ  ์„œ๋ฒ„๋กœ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค. (์ด ๊ธฐ๋ณธ ์ธ์ฆ์€ ํŒจํ‚ท ํ—ค๋”์— ์•„๋ฌด๋Ÿฐ ๋ณด์•ˆ ์—†์ด ๋…ธ์ถœ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ˆ„๊ตฌ๋‚˜ ์•Œ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค.)

  • WWW-Authenticate (์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ณด๋‚ผ ๋•Œ ์“ฐ๋Š” ํ—ค๋”)

    • ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ํ•ด๋‹น ํ—ค๋”์™€ 401(Unauthorized)๋ฅผ ๋ฐ›์œผ๋ฉด ์•Œ์•„์„œ ๋กœ๊ทธ์ธ ์ฐฝ์„ ๋„์šฐ๊ฒŒ ๋˜์–ด ์žˆ๋‹ค.
    browser http login window
  • Authorization (ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—๊ฒŒ ๋ณด๋‚ผ ๋•Œ ์“ฐ๋Š” ํ—ค๋”)

    • ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ž…๋ ฅํ•œ ๊ฐ’์€ ๊ณ ์ •๋œ ๊ธธ์ด์˜ ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜๋˜์–ด ์š”์ฒญ์˜ Authorization ํ—ค๋”์— ๋ถ™์–ด ๊ฐ„๋‹ค.
      http authorization request header

๋šฑ๋šฑํ•œ URL

  • ์‚ฌ์šฉ์ž ์‹๋ณ„ ๋ฒˆํ˜ธ๋ฅผ URL ๋’ค์— ๋ถ™์—ฌ์„œ ์ถ”์ ํ•œ๋‹ค.
  • ์‚ฌ์šฉ์ž์˜ ์ƒํƒœ๋ฅผ URL๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ

๋‹จ์ 

  • URL์— ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ •๋ณด๊ฐ€ ๋ถ™์—ฌ์ง€๊ธฐ ๋•Œ๋ฌธ์— URL์ด ํ˜ผ๋ž€์Šค๋Ÿฝ๋‹ค
  • URL์— ๊ฐœ์ธ ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ URL ๊ณต์œ  ์‹œ ๊ฐœ์ธ ์ •๋ณด๋„ ๋…ธ์ถœ๋œ๋‹ค.
  • URL์ด ๋‹ฌ๋ผ์ง€๊ธฐ ๋•Œ๋ฌธ์— ์บ์‹œ๋˜์ง€ ์•Š๋Š”๋‹ค.
  • ๋šฑ๋šฑํ•œ URL์ด ์•„๋‹Œ URL๋กœ ์ ‘์†ํ•˜๋ฉด ๋ชจ๋“  ์ •๋ณด๋ฅผ ์žƒ์–ด๋ฒ„๋ฆฐ๋‹ค. (์ง€์†์ ์ด์ง€ ์•Š์Œ)

์ฟ ํ‚ค ๐Ÿชย 

์‚ฌ์šฉ์ž๋ฅผ ์‹๋ณ„ํ•˜๊ณ  ์„ธ์…˜์„ ์œ ์ง€ํ•˜๋Š” ๋ฐฉ์‹ ์ค‘์—์„œ ํ˜„์žฌ๊นŒ์ง€ ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. (๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ง€์›ํ•œ๋‹ค)

์ฟ ํ‚ค์˜ ํƒ€์ž…

์ฟ ํ‚ค์˜ ํŒŒ๊ธฐ ์‹œ์ ์— ๋”ฐ๋ผ ๋‘ ์ข…๋ฅ˜๋กœ ๊ตฌ๋ถ„๋œ๋‹ค.

  • Session Cookie (์„ธ์…˜ ์ฟ ํ‚ค)
    • ์‚ฌ์šฉ์ž๊ฐ€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋‹ซ์œผ๋ฉด ์‚ญ์ œ๋œ๋‹ค.
    • ์ฟ ํ‚ค ํŒŒ๋ผ๋ฏธํ„ฐ์— Discard ๋‚˜ ํŒŒ๊ธฐ๊นŒ์ง€ ๋‚จ์€ ์‹œ์ ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” Expires ํ˜น์€ Max-Age ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์—†์œผ๋ฉด ์„ธ์…˜ ์ฟ ํ‚ค์ด๋‹ค.
  • Persistent Cookie (์ง€์† ์ฟ ํ‚ค)
    • ๋””์Šคํฌ์— ์ €์žฅ๋œ๋‹ค.
    • ์‚ฌ์šฉ์ž๊ฐ€ ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ฐฉ๋ฌธํ•˜๋Š” ์‚ฌ์ดํŠธ์— ๋Œ€ํ•œ ์„ค์ • ์ •๋ณด๋‚˜ ๋กœ๊ทธ์ธ ์ด๋ฆ„์„ ์œ ์ง€ํ•˜๋ ค๊ณ  ์‚ฌ์šฉํ•œ๋‹ค.

์ฟ ํ‚ค๋Š” ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ• ๊นŒ?

  • ์‚ฌ์šฉ์ž๊ฐ€ ์›น ์‚ฌ์ดํŠธ์— ๋ฐฉ๋ฌธํ•˜๋ฉด ์›น ์„œ๋ฒ„๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ Set-Cookie ์‘๋‹ต ํ—ค๋”๋กœ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ฟ ํ‚ค๋ฅผ ์ „๋‹ฌํ•œ๋‹ค(์ฟ ํ‚ค๋Š” key=value ํ˜•ํƒœ์˜ ๋ฆฌ์ŠคํŠธ์ด๋‹ค).

  • ๋ธŒ๋ผ์šฐ์ €๋Š” ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์˜จ Set-Cookie ํ—ค๋”์— ์žˆ๋Š” ์ฟ ํ‚ค ์ฝ˜ํ…์ธ ๋ฅผ ๋ธŒ๋ผ์šฐ์ € ์ฟ ํ‚ค DB์— ์ €์žฅํ•œ๋‹ค.

  • ์‚ฌ์šฉ์ž๊ฐ€ ๋ฏธ๋ž˜์— ๊ฐ™์€ ์‚ฌ์ดํŠธ๋ฅผ ๋ฐฉ๋ฌธํ•˜๋ฉด, ๋ธŒ๋ผ์šฐ์ €๋Š” ์ด์ „์— ์„œ๋ฒ„๋กœ ๋ถ€ํ„ฐ ๋ฐ›์€ ์ฟ ํ‚ค๋ฅผ Cookie ์š”์ฒญ ํ—ค๋”์— ์ ์–ด์„œ ๋ณด๋‚ธ๋‹ค.

    • ๊ตฌ๊ธ€ ํฌ๋กฌ์—์„œ ์ €์žฅํ•œ ์ฟ ํ‚ค๋Š” ๊ฐœ๋ฐœ์ž ๋„๊ตฌ > ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ > ์ฟ ํ‚ค ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋‹ค

์ฟ ํ‚ค์™€ ์บ์‹œ

์ฟ ํ‚ค ํ—ค๋”๋ฅผ ํฌํ•จํ•œ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์€, ๊ฐœ์ธ ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์„ ๊ฒƒ์ด๋ฏ€๋กœ ์บ์‹œ๋˜๋ฉด ์•ˆ๋œ๋‹ค.

์ด๋Ÿฐ ๊ฒฝ์šฐ ํ•ด๋‹น ๋ฌธ์„œ์— Cache๊ด€๋ จ ํ—ค๋”๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ํŒŒ๊ธฐ ์‹œ๊ฐ„์ด 0์ธ ์ฟ ํ‚ค ํ—ค๋”๋ฅผ ์„ค์ •ํ•ด์„œ ๋งค๋ฒˆ ์žฌ๊ฒ€์‚ฌํ•˜๊ฒŒ ํ•ด์•ผ ํ•œ๋‹ค.

์ฐธ๊ณ