Skip to content

Latest commit

ย 

History

History
84 lines (58 loc) ยท 4.56 KB

Cookie_and_Session.md

File metadata and controls

84 lines (58 loc) ยท 4.56 KB

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

written by sohyeon, hyemin ๐Ÿ’ก


1. ์ฟ ํ‚ค์™€ ์„ธ์…˜์„ ์™œ ์‚ฌ์šฉํ• ๊นŒ?

HTTP ํ”„๋กœํ† ์ฝœ์˜ ํŠน์ง•์ด์ž ์•ฝ์ ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
HTTP ํ”„๋กœํ† ์ฝœ์€ connectionless, statelessํ•œ ํŠน์„ฑ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋น„์—ฐ๊ฒฐ์„ฑ (Connenctionless)

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์š”์ฒญ์„ ํ•œ ํ›„ ์‘๋‹ต์„ ๋ฐ›์œผ๋ฉด ๋งบ์—ˆ๋˜ ์—ฐ๊ฒฐ์„ ๋Š๋Š” ํŠน์„ฑ

๋ฌด์ƒํƒœ์„ฑ (Stateless)

์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด์˜ ํ†ต์‹ ์ด ๋๋‚˜๋ฉด ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š” ํŠน์„ฑ

์ƒํƒœ๋ฅผ ๋ชจ๋ฅธ๋‹ค๋ฉด,

  1. ์‡ผํ•‘๋ชฐ์— ์ ‘์†
  2. ๋กœ๊ทธ์ธ
  3. ์ƒํ’ˆ ํด๋ฆญ -> ์ƒ์„ธํ™”๋ฉด์œผ๋กœ ์ด๋™
  4. ๋กœ๊ทธ์ธ
  5. ์ฃผ๋ฌธ
  6. ๋กœ๊ทธ์ธ
  7. ....

์ด๋Ÿฐ์‹์œผ๋กœ ๋งค๋ฒˆ ํด๋ผ์ด์–ธํŠธ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์ธ์ฆ์„ ๋ฐ˜๋ณตํ•ด์•ผํ•˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

-> ์ด๋Ÿฌํ•œ HTTPํ”„๋กœํ† ์ฝœ ํŠน์„ฑ์œผ๋กœ ์ธํ•ด ์ƒ๊ธฐ๋Š” ๋‹จ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ฟ ํ‚ค์™€ ์„ธ์…˜์„ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค.

1. ์ฟ ํ‚ค (Cookie)

  • ์ฟ ํ‚ค๋Š” ํด๋ผ์ด์–ธํŠธ ๋กœ์ปฌ์— ์ €์žฅ๋˜๋Š” ํ‚ค์™€ ๊ฐ’์ด ๋“ค์–ด์žˆ๋Š” ์ž‘์€ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.

  • ์‚ฌ์šฉ์ž ์ธ์ฆ์ด ์œ ํšจํ•œ ์‹œ๊ฐ„์„ ๋ช…์‹œํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์œ ํšจ ์‹œ๊ฐ„์ด ์ •ํ•ด์ง€๋ฉด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ข…๋ฃŒ๋˜์–ด๋„ ์ธ์ฆ์ด ์œ ์ง€๋œ๋‹ค๋Š” ํŠน์ง•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ฟ ํ‚ค๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ ์ •๋ณด๋ฅผ ๋กœ์ปฌ์— ์ €์žฅํ–ˆ๋‹ค๊ฐ€ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค.

  • Response Header์— Set-Cookie ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ์— ์ฟ ํ‚ค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ฟ ํ‚ค๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋”ฐ๋กœ ์š”์ฒญํ•˜์ง€ ์•Š์•„๋„ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ Request์‹œ์— Request Header๋ฅผ ๋„ฃ์–ด์„œ ์ž๋™์œผ๋กœ ์„œ๋ฒ„์— ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

์ฟ ํ‚ค์˜ ๊ตฌ์„ฑ ์š”์†Œ

  • ์ด๋ฆ„ : ๊ฐ๊ฐ์˜ ์ฟ ํ‚ค๋ฅผ ๊ตฌ๋ณ„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์ด๋ฆ„
  • ๊ฐ’ : ์ฟ ํ‚ค์˜ ์ด๋ฆ„๊ณผ ๊ด€๋ จ๋œ ๊ฐ’
  • ์œ ํšจ์‹œ๊ฐ„ : ์ฟ ํ‚ค์˜ ์œ ์ง€์‹œ๊ฐ„
  • ๋„๋ฉ”์ธ : ์ฟ ํ‚ค๋ฅผ ์ „์†กํ•  ๋„๋ฉ”์ธ
  • ๊ฒฝ๋กœ : ์ฟ ํ‚ค๋ฅผ ์ „์†กํ•  ์š”์ฒญ ๊ฒฝ๋กœ

2. ์„ธ์…˜ (Session)

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

  • ์„œ๋ฒ„์—์„œ๋Š” ํด๋ผ์ด์–ธํŠธ๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ์„ธ์…˜ ID๋ฅผ ๋ถ€์—ฌํ•˜๋ฉฐ ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์„œ๋ฒ„์— ์ ‘์†ํ•ด์„œ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ข…๋ฃŒํ•  ๋•Œ๊นŒ์ง€ ์ธ์ฆ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

  • ์ ‘์† ์‹œ๊ฐ„์— ์ œํ•œ์„ ๋‘์–ด ์ผ์ • ์‹œ๊ฐ„ ์‘๋‹ต์ด ์—†๋‹ค๋ฉด ์ •๋ณด๊ฐ€ ์œ ์ง€๋˜์ง€ ์•Š๊ฒŒ ์„ค์ •์ด ๊ฐ€๋Šฅ ํ•ฉ๋‹ˆ๋‹ค.

  • ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์„œ๋ฒ„์— ๋‘๊ธฐ ๋•Œ๋ฌธ์— ์ฟ ํ‚ค๋ณด๋‹ค ๋ณด์•ˆ์— ์ข‹์ง€๋งŒ, ์‚ฌ์šฉ์ž๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ์„œ๋ฒ„ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋งŽ์ด ์ฐจ์ง€ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
    (์ฆ‰, ๋™์ ‘์ž ์ˆ˜๊ฐ€ ๋งŽ์€ ์›น ์‚ฌ์ดํŠธ์ธ ๊ฒฝ์šฐ ์„œ๋ฒ„์— ๊ณผ๋ถ€ํ•˜๋ฅผ ์ฃผ๊ฒŒ ๋˜๋ฏ€๋กœ ์„ฑ๋Šฅ ์ €ํ•˜์˜ ์š”์ธ์ด ๋ฉ๋‹ˆ๋‹ค.)

  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ Request๋ฅผ ๋ณด๋‚ด๋ฉด, ํ•ด๋‹น ์„œ๋ฒ„์˜ ์—”์ง„์ด ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์œ ์ผํ•œ ID๋ฅผ ๋ถ€์—ฌํ•˜๋Š” ๋ฐ ์ด๊ฒƒ์ด ์„ธ์…˜ID๋‹ค.

์„ธ์…˜์˜ ํŠน์ง•

  • ๊ฐ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๊ณ ์œ  ID๋ฅผ ๋ถ€์—ฌ
  • ์„ธ์…˜ ID๋กœ ํด๋ผ์ด์–ธํŠธ๋ฅผ ๊ตฌ๋ถ„ํ•ด์„œ ํด๋ผ์ด์–ธํŠธ์˜ ์š”๊ตฌ์— ๋งž๋Š” ์„œ๋น„์Šค๋ฅผ ์ œ๊ณต
  • ๋ณด์•ˆ ๋ฉด์—์„œ ์ฟ ํ‚ค๋ณด๋‹ค ์šฐ์ˆ˜
  • ์‚ฌ์šฉ์ž๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ์„œ๋ฒ„ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋งŽ์ด ์ฐจ์ง€ํ•˜๊ฒŒ ๋จ

์ฟ ํ‚ค์™€ ์„ธ์…˜์˜ ์ฐจ์ด

  • ์ฟ ํ‚ค๋Š” ์„œ๋ฒ„์˜ ์ž์›์„ ์ „ํ˜€ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉฐ, ์„ธ์…˜์€ ์„œ๋ฒ„์˜ ์ž์›์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ๋ณด์•ˆ ๋ฉด์—์„œ ์„ธ์…˜์ด ๋” ์šฐ์ˆ˜ํ•˜๋ฉฐ, ์š”์ฒญ ์†๋„๋Š” ์ฟ ํ‚ค๊ฐ€ ์„ธ์…˜๋ณด๋‹ค ๋” ๋น ๋ฆ…๋‹ˆ๋‹ค.
    (์„ธ์…˜์€ ์„œ๋ฒ„์˜ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ)
  • ์ฟ ํ‚ค๋Š” ํด๋ผ์ด์–ธํŠธ ๋กœ์ปฌ์— ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€์งˆ๋˜๊ฑฐ๋‚˜ request์—์„œ ์Šค๋‹ˆํ•‘ ๋‹นํ•  ์šฐ๋ ค๊ฐ€ ์žˆ์–ด์„œ ๋ณด์•ˆ์— ์ทจ์•ฝํ•˜์ง€๋งŒ,
    ์„ธ์…˜์€ ์ฟ ํ‚ค๋ฅผ ์ด์šฉํ•ด์„œ sessionid ๋งŒ ์ €์žฅํ•˜๊ณ  ๊ทธ๊ฒƒ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์„œ๋ฒ„์—์„œ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋น„๊ต์  ๋ณด์•ˆ์„ฑ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
  • ์ฟ ํ‚ค๋„ ๋งŒ๋ฃŒ์‹œ๊ฐ„์ด ์žˆ์ง€๋งŒ ํŒŒ์ผ๋กœ ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ข…๋ฃŒํ•ด๋„ ๊ณ„์†ํ•ด์„œ ์ •๋ณด๊ฐ€ ๋‚จ์•„ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.
    ๋˜ํ•œ ๋งŒ๋ฃŒ๊ธฐ๊ฐ„์„ ๋„‰๋„‰ํ•˜๊ฒŒ ์žก์•„๋‘๋ฉด ์ฟ ํ‚ค์‚ญ์ œ๋ฅผ ํ•  ๋•Œ ๊นŒ์ง€ ์œ ์ง€๋  ์ˆ˜๋„ ์žˆ๋‹ค.
    ๋ฐ˜๋ฉด์— ์„ธ์…˜์€ ๋งŒ๋ฃŒ์‹œ๊ฐ„์„ ์ •ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ๋งŒ๋ฃŒ์‹œ๊ฐ„์— ์ƒ๊ด€์—†์ด ์‚ญ์ œ๋œ๋‹ค.
  • ์„ธ์…˜์€ ์ •๋ณด๊ฐ€ ์„œ๋ฒ„์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ฒ˜๋ฆฌ๊ฐ€ ์š”๊ตฌ๋˜์–ด ๋น„๊ต์  ๋Š๋ฆฐ ์†๋„๋ฅผ ๋‚ธ๋‹ค.

์„ธ์…˜์˜ ์‚ฌ์šฉ

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

Reference & Additional Resources