11. Client Identification and Cookies

์›น ์„œ๋ฒ„๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์ˆ˜์ฒœ๊ฐœ์˜ ํด๋ผ์ด์–ธํŠธ์™€ ๋™์‹œ์— ํ†ต์‹ ํ•œ๋‹ค.

์ด ์„œ๋ฒ„๋“ค์€ ์ต๋ช…์˜ ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ๋ฐ›๋Š” ๋ชจ๋“  ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๊ณ ์žˆ๋Š” ํด๋ผ์ด์–ธํŠธ๋ฅผ ์ถ”์ ํ•ด์•ผํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

์„œ๋ฒ„๊ฐ€ ํ†ต์‹ ํ•˜๋Š” ๋Œ€์ƒ์„ ์‹๋ณ„ํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์ˆ ์„ ์•Œ์•„๋ณธ๋‹ค.

1) ๊ฐœ๋ณ„ ์ ‘์ด‰

**Stateless(๋ฌด์ƒํƒœ)**:
  - ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ๋ฅผ ๋ณด์กดํ•˜์ง€ ์•Š๋Š”๋‹ค.
  - ์—ฐ๊ฒฐ์ž์ฒด์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ฐ€์ง€์ง€ ์•Š๊ณ , ๋งค ์š”์ฒญ์€ ์ผํšŒ์„ฑ์ด๊ณ  ๋…๋ฆฝ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋œ๋‹ค.
  - ์žฅ์ : ์„œ๋ฒ„ ํ™•์žฅ์„ฑ์ด ์ข‹๋‹ค. (scale-out)
  - ๋‹จ์ : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•ด์•ผํ•œ๋‹ค.

HTTP ๋Š” ์ต๋ช…์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ , ์ƒํƒœ๊ฐ€์—†๊ณ (stateless), ์š”์ฒญ๊ณผ ์‘๋‹ต์œผ๋กœ ํ†ต์‹ ํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค.

์›น ์„œ๋ฒ„๋Š” ์š”์ฒญ์„ ๋ณด๋‚ธ ์‚ฌ์šฉ์ž๋ฅผ ์‹๋ณ„ํ•˜๊ฑฐ๋‚˜, ๋ฐฉ๋ฌธ์ž๊ฐ€ ๋ณด๋‚ธ ์—ฐ์†์ ์ธ ์š”์ฒญ์„ ์ถ”์ ํ•˜๊ธฐ์œ„ํ•ด ์•ฝ๊ฐ„์˜ ์ •๋ณด๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ํ˜„๋Œ€ ์›น ์‚ฌ์ดํŠธ๋“ค์€ ๊ฐœ์ธํ™” ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์‹ถ์–ดํ•œ๋‹ค. ๋„คํŠธ์›Œํฌ๋กœ ์—ฐ๊ฒฐ๋œ ์‚ฌ์šฉ์ž๋“ค์— ๋Œ€ํ•ด ๋” ๋งŽ์ด ์•Œ๊ณ  ์‹ถ๊ณ , ๊ฒ€์ƒ‰์„ ๊ธฐ๋กํ•˜๊ณ  ์‹ถ๋‹ค. ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ๊ฐœ์ธํ™”์‹œ์ผœ์„œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ๊ณตํ•œ๋‹ค.

  • ๊ฐœ๋ณ„ ์ธ์‚ฌ: ๊ฐœ์ธ์—๊ฒŒ ๋งž์ถฐ์ ธ ์žˆ๋Š”๊ฒƒ ์ฒ˜๋Ÿผ ๋Š๋ผ๋„๋ก ์‚ฌ์šฉ์ž์—๊ฒŒ ํŠนํ™”๋œ ํ™˜์˜๋ฉ”์„ธ์ง€๋‚˜ ํŽ˜์ด์ง€ ๋‚ด์šฉ์„ ๋งŒ๋“ ๋‹ค.

  • ์‚ฌ์šฉ์ž ๋งž์ถค ์ถ”์ฒœ: ๊ณ ๊ฐ์˜ ํฅ๋ฏธ๋ฅผ ํ•™์Šตํ•˜๊ณ , ์ข‹์•„ํ• ๊ฒƒ์„ ์˜ˆ์ธกํ•ด์„œ ์ถ”์ฒœ. ํ˜น์€ ์ƒ์ผ, ์ค‘์š”ํ•œ๋‚  ํŠน๋ณ„์ œํ’ˆ ์ œ์‹œ.

  • ์ €์žฅ๋œ ์‚ฌ์šฉ์ž ์ •๋ณด: ํ•œ๋ฒˆ ์‹๋ณ„์„ ํ•˜๊ณ  ๋‚˜๋ฉด, ๋‹ค์Œ ์ด์šฉ์„ ๋” ํŽธํ•˜๊ฒŒ ํ•˜๋„๋ก ์‚ฌ์šฉ์ž์ •๋ณด๋ฅผ ์‚ฌ์šฉํ• ์ˆ˜์žˆ๋‹ค.

  • ์„ธ์…˜ ์ถ”์ : HTTP ํŠธ๋žœ์žญ์…˜์€ ๋ฌด์ƒํƒœ์ง€๋งŒ, ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋„๋ก ๊ฐ ์‚ฌ์šฉ์ž์—๊ฒŒ์„œ ์˜ค๋Š” HTTP ํŠธ๋žœ์žญ์…˜์„ ์‹๋ณ„.

HTTP ๊ฐ€ ์‚ฌ์šฉ์ž๋ฅผ ์‹๋ณ„ํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์ˆ ์„ ์ •๋ฆฌํ•ด๋ณด์ž.

2) HTTP ํ—ค๋”

* ์‚ฌ์šฉ์ž์— ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ 7๊ฐ€์ง€ HTTP ์š”์ฒญํ—ค๋”
    - From: ์‚ฌ์šฉ์ž ์ด๋ฉ”์ผ ์ฃผ์†Œ   
  - User-Agent: ์‚ฌ์šฉ์ž ๋ธŒ๋ผ์šฐ์ €
  - Referer: ์‚ฌ์šฉ์ž๊ฐ€ ํ˜„์žฌ ๋งํฌ๋ฅผ ํƒ€๊ณ ์˜จ ๊ทผ์› ํŽ˜์ด์ง€ 

  - Authorization: ์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ
  - Client-ip: ํด๋ผ์ด์–ธํŠธ์˜ IP ์ฃผ์†Œ
  - X-Forwarded-For: ํด๋ผ์ด์–ธํŠธ์˜ IP ์ฃผ์†Œ
  - Cookie: ์„œ๋ฒ„๊ฐ€ ์ƒ์„ฑํ•œ ID ๋ผ๋ฒจ
  • From: (์ด์ƒ์ ์œผ๋กœ๋Š”) ๊ฐ ์‚ฌ์šฉ์ž๊ฐ€ ๋ชจ๋‘ ๋‹ค๋ฅธ ์ด๋ฉ”์ผ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๋‹ˆ๊นŒ ์‚ฌ์šฉ์ž๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ์Œ.

    ๋‹จ, ์•…์˜์ ์ธ ์„œ๋ฒ„๊ฐ€ ์ด๋ฉ”์ผ ์ฃผ์†Œ๋ฅผ ๋ชจ์•„ ์ŠคํŒธ๋ฉ”์ผ์„ ๋ฐœ์†กํ•  ์ˆ˜ ์žˆ์–ด์„œ Fromํ—ค๋”๋ฅผ ๋ณด๋‚ด๋Š” ๋ธŒ๋ผ์šฐ์ €๋Š” ์ ๋‹ค.

  • User-Agentํ—ค๋”: ๋ธŒ๋ผ์šฐ์ € ์ด๋ฆ„, ๋ฒ„์ „, OS ์ •๋ณด๋ฅผ ํฌํ•จํ•ด์„œ ์„œ๋ฒ„์— ๋ณด๋‚ด์ง€๋งŒ, ์‚ฌ์šฉ์ž ์‹๋ณ„์—๋Š” ํฐ ๋„์›€ X

    (ํŠน์ • ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ œ๋Œ€๋กœ ๋™์ž‘ํ•˜๋„๋ก ์†์„ฑ์— ๋งž์ถฐ ์ฝ˜ํ…์ธ  ์ตœ์ ํ™” ๊ฐ€๋Šฅ)

  • Referer: ์ด ํ—ค๋”๋งŒ์œผ๋กœ ์‚ฌ์šฉ์ž๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜๋Š” ์—†์ง€๋งŒ, ์ด์ „์— ์–ด๋–ค ํŽ˜์ด์ง€๋ฅผ ๋ฐฉ๋ฌธํ–ˆ๋Š”์ง€ ์•Œ๋ ค์ค€๋‹ค.

    (์ทจํ–ฅํŒŒ์•…, ์›น์‚ฌ์šฉํ–‰ํƒœ๋ฅผ ํŒŒ์•…ํ•˜๋Š”๋ฐ ์œ ์šฉํ•˜๋‹ค.)

3) ํด๋ผ์ด์–ธํŠธ IP ์ฃผ์†Œ

์ดˆ๊ธฐ์— ์‚ฌ์šฉ์ž ์‹๋ณ„์„ ์œ„ํ•ด ํด๋ผ์ด์–ธํŠธ IP ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค ํ–ˆ๋‹ค.

์‚ฌ์šฉ์ž๋Š” ํ™•์‹คํ•œ IP ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ ์žˆ๊ณ , ๊ทธ ์ฃผ์†Œ๊ฐ€ ์ข€์ฒ˜๋Ÿผ(ํ˜น์€ ์ ˆ๋Œ€) ๋ฐ”๋€Œ์ง€ ์•Š๊ณ , ์›น ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ๋งˆ๋‹ค ํด๋ผ์ด์–ธํŠธ์˜ IP ์ฃผ์†Œ๋ฅผ ์•Œ์ˆ˜ ์žˆ์„ ๋•Œ๋Š” ๋ฌธ์ œ์—†์ด ๋™์ž‘ํ•œ๋‹ค.

๋‹จ, ๋ช‡๊ฐ€์ง€ ์•ฝ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

  • ํด๋ผ์ด์–ธํŠธ IP ์ฃผ์†Œ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์•„๋‹Œ, ์ปดํ“จํ„ฐ๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค. (ํ•œ ์ปดํ“จํ„ฐ์— ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•˜๋ฉด?)

  • ISP๋Š” ๋™์ ์œผ๋กœ IP ์ฃผ์†Œ๋ฅผ ํ• ๋‹นํ•ด์ค€๋‹ค. ๋กœ๊ทธ์ธ ์‹œ๊ฐ„์— ๋”ฐ๋ผ ์‚ฌ์šฉ์ž๋Š” ๋งค๋ฒˆ ๋‹ค๋ฅธ ์ฃผ์†Œ๋ฅผ ๋ฐ›๋Š”๋‹ค.

  • ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•˜๋ฉด์„œ NAT(network address translation) ๋ฐฉํ™”๋ฒฝ์„ ํ†ตํ•ด ์ธํ„ฐ๋„ท์„ ์‚ฌ์šฉํ•œ๋‹ค. ์‹ค์ œ IP์ฃผ์†Œ๋Š” ๋’ค๋กœ ์ˆจ๊ธฐ๊ณ , ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํ•˜๋‚˜์˜ IP์ฃผ์†Œ(&ํฌํŠธ๋ฒˆํ˜ธ)๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.

  • ์›น์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์˜ IP์ฃผ์†Œ๋Œ€์‹  ํ”„๋ก์‹œ ์„œ๋ฒ„์˜ IP์ฃผ์†Œ๋ฅผ ๋ณธ๋‹ค. ์ผ๋ถ€ ํ”„๋ฝ์‹œ๋Š” ์›๋ณธ IP์ฃผ์†Œ๋ฅผ ๋ณด์กดํ•˜๊ธฐ์œ„ํ•ด Client-IP, X-Forwarded-For๋กœ ํ•ด๊ฒฐํ•˜๋ ค ํ–ˆ์œผ๋‚˜ ๋ชจ๋“  ํ”„๋ฝ์‹œ๊ฐ€ ์ด๋ ‡๊ฒŒ ๋™์ž‘ํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค.

4) ์‚ฌ์šฉ์ž ๋กœ๊ทธ์ธ

IP ์ฃผ์†Œ๋กœ ์‚ฌ์šฉ์ž๋ฅผ ์‹๋ณ„ํ•˜๋Š” ์ˆ˜๋™์ ์ธ ๋ฐฉ์‹๋ณด๋‹ค, ์›น์„œ๋ฒ„๋Š” ์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ธ์ฆ(๋กœ๊ทธ์ธ)ํ• ๊ฒƒ์„ ์š”๊ตฌํ•ด์„œ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ช…์‹œ์ ์œผ๋กœ ์‹๋ณ„ ์š”์ฒญ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์›น์‚ฌ์ดํŠธ ๋กœ๊ทธ์ธ์ด ์‰ฝ๋„๋ก WWW-Authenticate ์™€ Authorization ํ—ค๋”๋ฅผ ์‚ฌ์šฉํ•ด ์›น ์‚ฌ์ดํŠธ์— ์‚ฌ์šฉ์ž ์ด๋ฆ„์„ ์ „๋‹ฌํ•˜๋Š” ์ž์ฒด์ ์ธ ์ฒด๊ณ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

์‚ฌ์šฉ์ž๋ฅผ ์ธ์ฆ ๋ฐ›์œผ๋ฉด, ์ด ์‹œ์  ์ดํ›„๋ถ€ํ„ฐ๋Š” ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์‚ฌ์šฉ์ž ์‹๋ณ„ ์ •๋ณด ์š”์ฒญ์— ๋Œ€ํ•ด ์ž๋™์œผ๋กœ ์ด๋ฆ„๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ํฌํ•จํ•ด์„œ ์š”์ฒญํ•˜์ง€ ์•Š์„ ๋•Œ์—๋„ ์ „๋‹ฌํ•œ๋‹ค. ํ•œ๋ฒˆ ๋กœ๊ทธ์ธํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €๋Š” ์š”์ฒญ๋งˆ๋‹ค ํ•ด๋‹น ์‹๋ณ„์ •๋ณด ํ† ํฐ์„ Authorization ํ—ค๋”์— ๋‹ด์•„ ์„œ๋ฒ„๋กœ ์ „์†กํ•ด์„œ ํ•œ ์„ธ์…˜์ด ์ง„ํ–‰๋˜๋Š” ๋‚ด๋‚ด ๊ทธ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ์‹๋ณ„์„ ์œ ์ง€ํ•œ๋‹ค.

ํ•˜์ง€๋งŒ, ์‚ฌ์ดํŠธ๋ฅผ ์˜ฎ๊ฒจ๋‹ค๋‹๋Œ€๋งˆ๋‹ค ๊ฐ ์‚ฌ์ดํŠธ์— ๋กœ๊ทธ์ธ์„ ํ•ด์•ผํ•œ๋‹ค๊ฑฐ๋‚˜, ๊ฐ ์‚ฌ์ดํŠธ๋ณ„๋กœ ๋‹ค๋ฅธ ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๊ธฐ์–ตํ•ด์•ผํ•˜๊ณ , ๋‚ด๊ฐ€ ์ข‹์•„ํ•˜๋Š” ์•„์ด๋””๋ฅผ ๋ˆ„๊ตฐ๊ฐ€ ๋จผ์ € ์„ ์ ํ–ˆ์„ ์ˆ˜๋„ ์žˆ๊ณ , ์‚ฌ์ดํŠธ๋ณ„๋กœ ์กฐํ•ฉ ๊ทœ์น™์„ ๋‘์–ด ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ์™€ ๋‹ค๋ฅผ ์ˆ˜๋„ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ์›น์‚ฌ์ดํŠธ ๋กœ๊ทธ์ธ์€ ๊ท€์ฐฎ์€ ์ผ์ด ๋  ์ˆ˜ ์žˆ๋‹ค.

5) ๋šฑ๋šฑํ•œ URL

์‚ฌ์šฉ์ž์˜ ์ƒํƒœ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” URL์„ ๋šฑ๋šฑํ•œ URL ์ด๋ผ๊ณ ํ•œ๋‹ค.

์‚ฌ์šฉ์ž์—๊ฒŒ ํ• ๋‹น๋œ ์‹๋ณ„๋ฒˆํ˜ธ (์˜ˆ: 002-1145265-8016838) ๋ฅผ ๊ฐ URL ๋’ค์— ๋ถ™์—ฌ ์‚ฌ์šฉ์ž๋ฅผ ์ถ”์ ํ•œ๋‹ค.

์›น ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๋Š” ๋…๋ฆฝ์ ์ธ HTTP ํŠธ๋žœ์žญ์…˜์„ ํ•˜๋‚˜์˜ '์„ธ์…˜' ํ˜น์€ '๋ฐฉ๋ฌธ'์œผ๋กœ ๋ฌถ๋Š” ์šฉ๋„๋กœ ๋šฑ๋šฑํ•œ url์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ, ์ด ๊ธฐ์ˆ ์—๋Š” ์—ฌ๋Ÿฌ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค.

  • ๋ชป์ƒ๊ธด URL: ์ƒˆ๋กœ์šด ์‚ฌ์šฉ์ž์—๊ฒŒ ํ˜ผ๋ž€์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค.

  • ๊ณต์œ ํ•˜์ง€ ๋ชปํ•˜๋Š” URL: ํŠน์ • ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ์ƒํƒœ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๋ฏ€๋กœ ๋ˆ„์ ๋œ ๊ฐœ์ธ์ •๋ณด๋ฅผ ๊ณต์œ ํ•˜๊ฒŒ ๋จ

  • ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ: URL์ด ๋‹ฌ๋ผ์ง€๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์กด ์บ์‹œ์— ์ ‘๊ทผ ๋ถˆ๊ฐ€๋Šฅ

  • ์„œ๋ฒ„ ๋ถ€ํ•˜ ๊ฐ€์ค‘: ๋šฑ๋šฑํ•œ URL์— ๋Œ€ํ•œ HTML ํŽ˜์ด์ง€๋ฅผ ๋‹ค์‹œ ๊ทธ๋ ค์•ผํ•จ.

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

  • ์„ธ์…˜๊ฐ„ ์ง€์†์„ฑ ๋ถ€์žฌ: ํŠน์ • ๋šฑ๋šฑํ•œ URL์„ ๋ถ๋งˆํ‚นํ•˜์ง€ ์•Š๋Š” ์ด์ƒ, ๋กœ๊ทธ์•„์›ƒ์‹œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ์žƒ๊ฒŒ๋จ.

6) ์ฟ ํ‚ค

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

์•ž์˜ ๊ธฐ์ˆ ๋“ค์ด ๊ฐ€์ง„ ๋ฌธ์ œ์ ์„ ๊ฒช์ง€๋Š” ์•Š์ง€๋งŒ, ์ฟ ํ‚ค๋งŒ์œผ๋กœ ํ•ด๊ฒฐํ•˜๊ธฐ ํž˜๋“ค ๋• ์•ž์„  ๊ธฐ์ˆ ๋“ค์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•œ๋‹ค.

์ฟ ํ‚ค๋Š” ์บ์‹œ์™€ ์ถฉ๋Œํ•  ์ˆ˜ ์žˆ์–ด์„œ, ๋Œ€๋ถ€๋ถ„์˜ ์บ์‹œ๋‚˜ ๋ธŒ๋ผ์šฐ์ €๋Š” ์ฟ ํ‚ค์— ์žˆ๋Š” ๋‚ด์šฉ๋ฌผ์„ ์บ์‹ฑํ•˜์ง€ ์•Š๋Š”๋‹ค.

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

  • ์„ธ์…˜ ์ฟ ํ‚ค(session cookie)

    • ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์ดํŠธ ํƒ์ƒ‰์‹œ ๊ด€๋ จ ์„ค์ •๊ณผ ์„ ํ˜ธ ์‚ฌํ•ญ์„ ์ €์žฅํ•˜๋Š” ์ž„์‹œ ์ฟ ํ‚ค์ด๋‹ค.

    • ์‚ฌ์šฉ์ž๊ฐ€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋‹ซ์œผ๋ฉด ์‚ญ์ œ๋œ๋‹ค.

  • ์ง€์† ์ฟ ํ‚ค(persistent cookie)

    • ๋””์Šคํฌ์— ์ €์žฅ๋˜์–ด ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋‹ซ๊ฑฐ๋‚˜ ์ปดํ“จํ„ฐ๋ฅผ ์žฌ์‹œ์ž‘ํ•˜๋”๋ผ๋„ ๋‚จ์•„์žˆ๋‹ค.

    • ์‚ฌ์šฉ์ž๊ฐ€ ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ฐฉ๋ฌธํ•˜๋Š” ์‚ฌ์ดํŠธ์— ๋Œ€ํ•œ ์„ค์ •์ •๋ณด๋‚˜ ๋กœ๊ทธ์ธ ์ด๋ฆ„์„ ์œ ์ง€ํ•˜๊ธฐ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค.

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

  • ์ฟ ํ‚ค๋Š” ์„œ๋ฒ„๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ถ™์ด๋Š” ์Šคํ‹ฐ์ปค ๊ฐ™๋‹ค.

  • ์‚ฌ์šฉ์ž๊ฐ€ ์›น์‚ฌ์ดํŠธ์— ๋ฐฉ๋ฌธํ•˜๋ฉด, ์›น์‚ฌ์ดํŠธ๋Š” ์„œ๋ฒ„๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ถ™์ธ ๋ชจ๋“  ์Šคํ‹ฐ์ปค๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค.

  • ๋™์ž‘ ์ˆœ์„œ

    • ์ฒ˜์Œ ์‚ฌ์šฉ์ž๊ฐ€ ์›น์‚ฌ์ดํŠธ๋ฐฉ๋ฌธ์‹œ ์›น์„œ๋ฒ„๋Š” ์‚ฌ์šฉ์ž์— ๋Œ€ํ•ด ์•„๋ฌด๊ฒƒ๋„ ๋ชจ๋ฅธ๋‹ค.

    • ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค์‹œ ๋Œ์•„์˜ค๋ฉด ์„œ๋ฒ„๋Š” ํ•ด๋‹น ์‚ฌ์šฉ์ž๋ฅผ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ’์„ ์ฟ ํ‚ค์— ํ• ๋‹นํ•œ๋‹ค.

      • ์ฟ ํ‚ค๋Š” ์ž„์˜์˜ ์ด๋ฆ„=๊ฐ’ ํ˜•ํƒœ์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ฐ€์ง€๊ณ 

      • set-Cookie, set-Cookie2 ๊ฐ™์€ HTTP ์‘๋‹ตํ—ค๋”์— ๊ธฐ์ˆ ๋˜์„œ ์‚ฌ์šฉ์ž์— ์ „๋‹ฌํ•œ๋‹ค.

      • ์„œ๋ฒ„๋Š” ์ด ์ฟ ํ‚ค๊ฐ’์œผ๋กœ DB ์—์„œ ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๋ฅผ ์ฐพ๋Š”๋ฐ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

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

      • ์‚ฌ์šฉ์ž๊ฐ€ ๋ฏธ๋ž˜์— ๊ฐ™์€ ์‚ฌ์ดํŠธ๋ฅผ ๋ฐฉ๋ฌธํ•˜๋ฉด ์„œ๋ฒ„๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ• ๋‹นํ•œ ์ฟ ํ‚ค๋ฅผ ์š”์ฒญํ—ค๋”์— ์ „๋‹ฌ.

โ‘ข ์ฟ ํ‚ค์ƒ์ž: ํด๋ผ์ด์–ธํŠธ ์ธก ์ƒํƒœ

์ฟ ํ‚ค์˜ ๊ธฐ๋ณธ ๋ฐœ์ƒ์€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์„œ๋ฒ„ ๊ด€๋ จ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ณ , ์‚ฌ์šฉ์ž๊ฐ€ ํ•ด๋‹น ์„œ๋ฒ„์— ์ ‘๊ทผํ•  ๋•Œ๋งˆ๋‹ค ๊ทธ ์ •๋ณด๋ฅผ ํ•จ๊ป˜ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” ์ฟ ํ‚ค์ •๋ณด๋ฅผ ์ €์žฅํ•  ์ฑ…์ž„์ด ์žˆ๊ณ , ์ด ์‹œ์Šคํ…œ์„ 'ํด๋ผ์ด์–ธํŠธ ์ธก ์ƒํƒœ'๋ผ๊ณ  ํ•œ๋‹ค. ๊ณต์‹ ์ด๋ฆ„์€ HTTP ์ƒํƒœ ๊ด€๋ฆฌ ์ฒด๊ณ„(HTTP State Management Mechanism) ์ด๋‹ค.

๊ฐ ๋ธŒ๋ผ์šฐ์ € ๋ณ„๋กœ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์ฟ ํ‚ค๋ฅผ ์ €์žฅํ•˜๊ณ , ๊ตฌ๊ธ€ ํฌ๋กฌ์€ Cookies๋ผ๋Š” SQLite ํŒŒ์ผ์— ์ฟ ํ‚ค๋ฅผ ์ €์žฅ.

  • ๊ตฌ๊ธ€ ํฌ๋กฌ ์ฟ ํ‚ค ํ™•์ธํ•˜๊ธฐ

    [๊ฐœ๋ฐœ์ž๋„๊ตฌ] - [Application ํƒญ] - [์ขŒ์ธก Storageํƒญ] - [Cookies]

  • ์ฃผ์š” ํ•„๋“œ ์ค‘

    • name: ์ฟ ํ‚ค ์ด๋ฆ„

    • value: ์ฟ ํ‚ค ๊ฐ’

    • HttpOnly: XSS ๊ณต๊ฒฉ๋ฐฉ์ง€ (javaScript์—์„œ ์ ‘๊ทผ ๋ถˆ๊ฐ€๋Šฅ. HTTP์ „์†ก์—๋งŒ ์‚ฌ์šฉ)

    • Secure: ์ฟ ํ‚ค๋Š” HTTP, HTTPs ๊ตฌ๋ถ„์—†์ด ์ „์†กํ•˜๊ณ , secure์ ์šฉ์‹œ https์ธ ๊ฒฝ์šฐ๋งŒ ์ „์†ก

    • samesite : ์„œ๋“œํŒŒํ‹ฐ ์ฟ ํ‚ค์˜ ๋ณด์•ˆ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ๊ธฐ์ˆ 

      ์ฐธ์กฐ: https://seob.dev/posts/๋ธŒ๋ผ์šฐ์ €-์ฟ ํ‚ค์™€-SameSite-์†์„ฑ/

โ‘ฃ ์‚ฌ์ดํŠธ๋งˆ๋‹ค ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์ฟ ํ‚ค๋“ค

๋ธŒ๋ผ์šฐ์ €๋Š” ์ˆ˜๋ฐฑ~์ˆ˜์ฒœ๊ฐœ์˜ ์ฟ ํ‚ค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์„์ˆ˜ ์žˆ์ง€๋งŒ, ๊ทธ๋ ‡๋‹ค๊ณ  ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ฟ ํ‚ค ์ „๋ถ€๋ฅผ ๋ชจ๋“  ์‚ฌ์ดํŠธ์— ๋ณด๋‚ด์ง€๋Š” ์•Š๋Š”๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” ๋ณดํ†ต ๊ฐ ์‚ฌ์ดํŠธ์— 1~3๊ฐœ์˜ ์ฟ ํ‚ค๋งŒ์„ ๋ณด๋‚ธ๋‹ค.

์ด์œ 

  • ์ฟ ํ‚ค๋ฅผ ๋ชจ๋‘ ์ „๋‹ฌํ•˜๋ฉด ์„ฑ๋Šฅ์ด ํฌ๊ฒŒ ์ €ํ•˜๋œ๋‹ค.

  • ์ฟ ํ‚ค ๋Œ€๋ถ€๋ถ„์€ ์„œ๋ฒ„์— ํŠนํ™”๋œ ์ด๋ฆ„/๊ฐ’ ์Œ์„ ํฌํ•จํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ์ดํŠธ์—์„œ๋Š” ์ธ์‹ํ•˜์ง€ ์•Š๋Š” ๋ฌด์˜๋ฏธํ•œ ๊ฐ’์ด๋‹ค.

  • ๋ชจ๋“  ์‚ฌ์ดํŠธ์— ์ฟ ํ‚ค๋ฅผ ์ „๋‹ฌํ•˜๋Š”๊ฒƒ์€, ํŠน์ • ์‚ฌ์ดํŠธ์—์„œ ์ œ๊ณตํ•œ ์ •๋ณด๋ฅผ ์‹ ๋ขฐํ•˜์ง€ ์•Š๋Š” ์‚ฌ์ดํŠธ์—์„œ ๊ฐ€์ ธ๊ฐˆ ์ˆ˜ ์žˆ์–ด์„œ ์ž ์žฌ์ ์ธ ๊ฐœ์ธ์ •๋ณด ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

๋ณดํ†ต ๋ธŒ๋ผ์šฐ์ €๋Š” ์ฟ ํ‚ค๋ฅผ ์ƒ์„ฑํ•œ ์„œ๋ฒ„์—๊ฒŒ๋งŒ ์ฟ ํ‚ค์— ๋‹ด๊ธด ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•œ๋‹ค.

์ฟ ํ‚ค๋Š” ์ผ์ข…์˜ ์ƒํƒœ ์ •๋ณด๋ผ๊ณ  ํ• ์ˆ˜ ์žˆ๊ณ , ์„œ๋ฒ„๊ฐ€ ์ƒ์„ฑํ•ด์„œ ํด๋ผ์ด์–ธํŠธ์— ์ „๋‹ฌํ•˜๊ณ  ํด๋ผ์ด์–ธํŠธ๋Š” ๊ทธ ์ฟ ํ‚ค๋ฅผ ์œ ํšจํ•œ ์‚ฌ์ดํŠธ์—๋งŒ ๋‹ค์‹œ ์ „๋‹ฌํ•˜๊ณ  ๊ด€๋ฆฌํ•œ๋‹ค.

(5~7) ์ฑ… ์ฐธ์กฐ

โ‘ง ์ฟ ํ‚ค์™€ ์„ธ์…˜ ์ถ”์ 

์ฟ ํ‚ค๋Š” ์›น์‚ฌ์ดํŠธ์— ์ˆ˜์ฐจ๋ก€ ํŠธ๋žœ์žญ์…˜์„ ๋งŒ๋“ค์–ด๋‚ด๋Š” ์‚ฌ์šฉ์ž๋ฅผ ์ถ”์ ํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•œ๋‹ค.

(๊ทธ๋ฆผ/์„ค๋ช… ์ฐธ์กฐ)

โ‘จ ์ฟ ํ‚ค์™€ ์บ์‹ฑ

์ฟ ํ‚ค ํŠธ๋žœ์žญ์…˜๊ณผ ๊ด€๋ จ๋œ ๋ฌธ์„œ๋ฅผ ์บ์‹ฑํ•˜๋Š” ๊ฒƒ์€ ์ฃผ์˜ํ•ด์•ผํ•œ๋‹ค.

์ด์ „ ์‚ฌ์šฉ์ž์˜ ์ฟ ํ‚ค๊ฐ€ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ• ๋‹น ๋˜๋ฒ„๋ฆฌ๊ฑฐ๋‚˜, ๋ˆ„๊ตฐ๊ฐ€์˜ ๊ฐœ์ธ์ •๋ณด๊ฐ€ ๋‹ค๋ฅธ์ด์—๊ฒŒ ๋…ธ์ถœ๋˜๋Š” ์ตœ์•…์˜ ์ƒํ™ฉ์ด ์ผ์–ด๋‚  ์ˆ˜๋„ ์žˆ๋‹ค.

์บ์‹œ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ธฐ๋ณธ ์›์น™

  • ์บ์‹œ๋˜์ง€ ๋ง์•„์•ผํ•  ๋ฌธ์„œ๊ฐ€ ์žˆ๋‹ค๋ฉด ํ‘œ์‹œํ•˜๋ผ.

    • ๋ฌธ์„œ๋ฅผ ์บ์‹œํ•˜๋ฉด ๋ ์ง€ ์•ˆ๋ ์ง€๋Š” ๋ฌธ์„œ์˜ ์†Œ์œ ์ž๊ฐ€ ๋” ์ž˜ ์•ˆ๋‹ค.

  • Set-Cookie ํ—ค๋”๋ฅผ ์บ์‹œํ•˜๋Š” ๊ฒƒ์— ์œ ์˜ํ•˜๋ผ.

  • Cookie ํ—ค๋”๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์š”์ฒญ์„ ์ฃผ์˜ํ•˜๋ผ.

  • ์„ธ์…˜ ์ฟ ํ‚ค ์ฐจ์ด์  [์ฐธ๊ณ ]

Last updated