[์ธ์ฆ/๋ณด์•ˆ] Cookie๐Ÿช์™€ Session

ํ˜คยท2022๋…„ 11์›” 17์ผ
0

Cookie์™€ Session

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

Cookie์™€ Session๋ฅผ ๋‹ค๋ฃจ๊ธฐ ์•ž์„œ HTTP์˜ ๋ฌด์ƒํƒœ์„ฑ(Stateless)๋ฅผ ์ดํ•ดํ•ด์•ผ ํ•œ๋‹ค.

HTTP์˜ ๋ฌด์ƒํƒœ์„ฑ(Stateless)์ด๋ž€, ์„œ๋ฒ„์™€์˜ ํ†ต์‹ ์ด ๋๋‚˜๋ฉด ์›๋ž˜์˜ ์ƒํƒœ๋กœ ๋˜๋Œ์•„๊ฐ€๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

์• ์ดˆ์— ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ๋ฅผ ์„œ๋ฒ„๊ฐ€ ๋ณด์กด์กฐ์ฐจ ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์œผ๋กœ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—๊ฒŒ ๋กœ๊ทธ์ธ ์š”์ฒญ์„ ๋„ฃ์–ด ์‘๋‹ต์„ ๋ฐ›์•˜์–ด๋„ ํ•ด๋‹น ํ†ต์‹ ์ด ๋๋‚˜๋ฉด ๋กœ๊ทธ์ธ์ด ๋˜์–ด ์žˆ๋˜ ์ƒํƒœ๋Š” ์ข…๋ฃŒ๋œ๋‹ค.

๋ฌด์ƒํƒœ์„ฑ์˜ ์žฅ์ 

  1. ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์ด ์ฆ๊ฐ€ํ•˜๋ฉด, ๊ธฐ์กด์˜ ์„œ๋ฒ„์— ๋‹ค๋ฅธ ์„œ๋ฒ„๋ฅผ ์ถ”๊ฐ€ํ•ด ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋‹ค.

    • ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ, ํ•„์š”ํ•œ ์ƒํƒœ ์ •๋ณด๋ฅผ ์ „๋ถ€ ๋‹ด์•„ ๋ณด๋‚ด์ค˜์•ผ ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์„œ๋ฒ„๊ฐ€ ์ž„์˜๋กœ ๋ฐ”๋€Œ์–ด๋„ ์ „ํ˜€ ์ƒ๊ด€์ด ์—†๋‹ค
    • ๋ฌดํ•œ ์„œ๋ฒ„ ์ฆ์„ค์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  2. ์„œ๋ฒ„์˜ ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ, ๋Œ€์‘์„ ๋น ๋ฅด๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.

    • ์„œ๋ฒ„์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ๋ฐ”๋กœ ๋‹ค๋ฅธ ์„œ๋ฒ„๋กœ ๋„˜๊ฒจ ์‘๋‹ต์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.
  3. ์Šค์ผ€์ผ์•„์›ƒ(์ˆ˜ํ‰ ํ™•์žฅ)์— ์œ ๋ฆฌํ•˜๋‹ค.

๋ฌด์ƒํƒœ์„ฑ์˜ ๋‹จ์ 

  1. ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.(๋กœ๊ทธ์ธ)
  2. ์ƒํƒœ๊ฐ’์ด ๋งค๋ฒˆ ๋ฆฌํ”„๋ ˆ์‰ฌ ๋˜๋ฏ€๋กœ ํ•ญ์ƒ ๊ฐ™์€ ์ •๋ณด๋ฅผ ๋ณด๋‚ด์•ผ ํ•œ๋‹ค. -> ๋งŽ์€ ๋ฐ์ดํ„ฐ ์ „์†ก

๐Ÿ’ก ๋ฌด์ƒํƒœ์„ฑ์ด ์น˜๋ช…์ ์ธ ๋‹จ์ ์„ ์•ˆ๊ณ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์œผ๋‚˜ ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•  ๋•Œ๋Š” ์ตœ๋Œ€ํ•œ ๋ฌด์ƒํƒœ์„ฑ์„ ์œ ์ง€ํ•˜๋ฉฐ ์„ค๊ณ„ํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•˜๋‹ค. ๋˜ํ•œ, ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๋ธŒ๋ผ์šฐ์ €์˜ ์ฟ ํ‚ค์™€ ์„ธ์…˜์„ ์‚ฌ์šฉํ•œ๋‹ค.(์ƒํƒœ ์œ ์ง€๋Š” ์–ด์ฉ” ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ตœ์†Œํ•œ์œผ๋กœ ์‚ฌ์šฉํ•  ๊ฒƒ)

  • ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ํ•˜๋‚˜์˜ ๋ฐฉ๋ฒ•
  • ํด๋ผ์ด์–ธํŠธ(๋ธŒ๋ผ์šฐ์ €) ๋กœ์ปฌ์— ์ €์žฅ๋˜๋Š” ํ‚ค์™€ ๊ฐ’์ด ๋“ค์–ด์žˆ๋Š” ์ž‘์€ ๋ฐ์ดํ„ฐ ํŒŒ์ผ
  • ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ ์ •๋ณด(ex. ๋กœ๊ทธ์ธ ์ •๋ณด)๋ฅผ ๋กœ์ปฌ(๋ธŒ๋ผ์šฐ์ €)์— ์ €์žฅํ–ˆ๋‹ค๊ฐ€ ์ฐธ์กฐํ•œ๋‹ค.
  • ์ฟ ํ‚ค๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋”ฐ๋กœ ์š”์ฒญํ•˜์ง€ ์•Š์•„๋„ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์š”์ฒญ ์‹œ์— Request Header์— ๋„ฃ์–ด ์ž๋™์œผ๋กœ ์„œ๋ฒ„์— ์ „์†กํ•œ๋‹ค.
  • ๐Ÿ’ก์ฃผ์˜ํ•  ์  : ์ฟ ํ‚ค๋Š” ์˜ค๋žœ ์‹œ๊ฐ„ ์œ ์ง€๋  ์ˆ˜ ์žˆ๊ณ , ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•ด ์ฟ ํ‚ค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฏผ๊ฐํ•œ ์ •๋ณด๋ฅผ ๋‹ด๋Š” ๊ฒƒ์€ ์œ„ํ—˜ํ•˜๋‹ค.

Cookie๐Ÿช์˜ ์˜ต์…˜

์ฟ ํ‚ค๋Š” ์š”์ฒญ ์—†์ด๋„ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ž๋™์œผ๋กœ ์„œ๋ฒ„์— ์ „์†กํ•œ๋‹ค๊ณ  ํ–ˆ์ง€๋งŒ ์•„๋ฌด๋•Œ๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ์ฟ ํ‚ค์— ์ €์žฅํ•œ ํ›„ ํŠน์ • ์กฐ๊ฑด์— ๋งŒ์กฑํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ๋‹ค์‹œ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

์ด๋Ÿฐ ํŠน์ • ์กฐ๊ฑด์„ ์ฟ ํ‚ค ์˜ต์…˜์ด๋ผ๊ณ  ํ•œ๋‹ค.

Domain

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

โ˜๏ธ ์„œ๋ธŒ๋„๋ฉ”์ธ : www.google.com์—์„œ www ์— ํ•ด๋‹นํ•œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์ฟ ํ‚ค ์˜ต์…˜์— naver.com์ด ์ €์žฅ๋˜์–ด ์žˆ๋‹ค๊ณ  ์นœ๋‹ค๋ฉด, ๋‚ด๊ฐ€ google.com์—์„œ ์ € ์ฟ ํ‚ค๋ฅผ ์ „์†กํ•  ์ˆ˜๋Š” ์—†๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

Path

๋„๋ฉ”์ธ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ฟ ํ‚ค ์˜ต์…˜์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” Path, ์ฆ‰ ์„ธ๋ถ€๊ฒฝ๋กœ์™€ ์š”์ฒญ URL์ด ๊ฐ™์•„์•ผ ์ฟ ํ‚ค๋ฅผ ์„œ๋ฒ„์— ์ „์†กํ•  ์ˆ˜ ์žˆ๋‹ค.

๋‹ค๋งŒ ์ฃผ์˜ํ•ด์•ผ ํ•  ์ ์€ ์„ค์ •๋œ Path๋ฅผ ์ „๋ถ€ ๋งŒ์กฑํ•˜๋Š” ๊ฒฝ์šฐ, ํ•˜์œ„ ์„ธ๋ถ€๊ฒฝ๋กœ๊ฐ€ ์žˆ๋”๋ผ๋„ ์ฟ ํ‚ค๋ฅผ ์„œ๋ฒ„์— ์ „์†กํ•  ์ˆ˜ ์žˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด ์ฟ ํ‚ค ์˜ต์…˜์˜ Path๊ฐ€ /users์ธ๋ฐ, ์š”์ฒญ ์„ธ๋ถ€ ๊ฒฝ๋กœ๊ฐ€ /users/hihi ์ธ ๊ฒฝ์šฐ๋Š” ์ฟ ํ‚ค ์ „์†ก ์Œ‰๊ฐ€๋„~

MaxAge or Expires

์ฟ ํ‚ค๊ฐ€ ์œ ํšจํ•œ ๊ธฐ๊ฐ„์„ ์ •ํ•˜๋Š” ์˜ต์…˜์ด๋‹ค. ์ฟ ํ‚ค๊ฐ€ ์˜์›ํžˆ ๋‚จ์•„์žˆ๊ฒŒ ๋˜๋ฉด ํƒˆ์ทจ์˜ ํ™•๋ฅ ์ด ์˜ฌ๋ผ๊ฐ€๋ฏ€๋กœ ์ •ํ•ด์ง„ ์œ ํšจ ๊ธฐ๊ฐ„์„ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•˜๋‹ค.

  • MaxAge : ์ดˆ ๋‹จ์œ„๋กœ ์œ ํšจ ๊ธฐ๊ฐ„์„ ์„ค์ •ํ•˜๋Š” ์˜ต์…˜.
  • Expires : ์–ธ์ œ๊นŒ์ง€ ์œ ํšจํ• ์ง€ ๋‚ ์งœ๋ฅผ ์ง€์ •ํ•˜๋Š” ์˜ต์…˜.

ํด๋ผ์ด์–ธํŠธ์˜ ์‹œ๊ฐ„์„ ๊ธฐ์ค€์œผ๋กœ ์„ค์ •ํ•˜๋ฉฐ ์ง€์ •๋œ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ์ฟ ํ‚ค๋Š” ์ž๋™์œผ๋กœ ํŒŒ๊ดด๋œ๋‹ค.

ํ•ด๋‹น ์˜ต์…˜์— ์—ฌ๋ถ€์— ๋”ฐ๋ผ ์ฟ ํ‚ค์˜ ์ข…๋ฅ˜๋ฅผ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

  • ์„ธ์…˜ ์ฟ ํ‚ค๐Ÿช : ๊ธฐ๊ฐ„ ์ œํ•œ ์˜ต์…˜์ด ์—†๋Š” ์ฟ ํ‚ค. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์‹คํ–‰ ์ค‘์ธ ์ƒํƒœ์—์„œ๋งŒ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•œ ์ž„์‹œ ์ฟ ํ‚ค์ด๋ฉฐ, ๋ธŒ๋ผ์šฐ์ € ์ข…๋ฃŒ ์‹œ ํ•ด๋‹น ์ฟ ํ‚ค๋Š” ์‚ญ์ œ๋œ๋‹ค.
  • ์˜์†์„ฑ ์ฟ ํ‚ค๐Ÿช : ์œ ํšจ ๊ธฐ๊ฐ„ ์˜ต์…˜์ด ์žˆ๋Š” ์ฟ ํ‚ค๋กœ ๋ธŒ๋ผ์šฐ์ €์˜ ์ข…๋ฃŒ ์—ฌ๋ถ€์™€๋Š” ์ƒ๊ด€์—†์ด ์˜ต์…˜์ด ์ •ํ•ด๋‘” ์œ ํšจ ๊ธฐ๊ฐ„๊นŒ์ง€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

Secure

์ฟ ํ‚ค๋ฅผ ์ „์†กํ•ด์•ผ ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์— ๋”ฐ๋ฅธ ์ฟ ํ‚ค ์ „์†ก ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์˜ต์…˜.

ํ•ด๋‹น ์˜ต์…˜์ด true ์ผ ๋•Œ, HTTPS ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•˜์—ฌ ํ†ต์‹ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ฟ ํ‚ค๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•ด๋‹น ์˜ต์…˜์ด ์—†๋‹ค๋ฉด ํ”„๋กœํ† ์ฝœ์— ์ƒ๊ด€์—†์ด HTTP, HTTPS ์— ๋ชจ๋“  ์ฟ ํ‚ค๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๋‹ค.

HttpOnly

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๋ธŒ๋ผ์šฐ์ €์˜ ์ฟ ํ‚ค์— ์ ‘๊ทผ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์˜ต์…˜์œผ๋กœ ํ•ด๋‹น ์˜ต์…˜์ด true์ผ ๊ฒฝ์šฐ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์ฟ ํ‚ค ์ ‘๊ทผ์ด ์ œ์–ด๋œ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์ฟ ํ‚ค ์ ‘๊ทผ์„ ํ—ˆ์šฉํ•˜๊ฒŒ ๋˜๋ฉด XSS ๊ณต๊ฒฉ์— ์ทจ์•ฝํ•ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ํ•„์ˆ˜์ ์œผ๋กœ ๋ช…์‹œํ•ด์ค˜์•ผ ํ•˜๋Š” ์˜ต์…˜์ด๋‹ค.

๐Ÿ’ก XSS

SameSite

Cross-Origin์š”์ฒญ์„ ๋ฐ›์€ ๊ฒฝ์šฐ ์š”์ฒญ์—์„œ ์‚ฌ์šฉํ•œ ๋ฉ”์„œ๋“œ์™€ ํ•ด๋‹น ์˜ต์…˜์˜ ์กฐํ•ฉ์œผ๋กœ ์„œ๋ฒ„์˜ ์ฟ ํ‚ค ์ „์†ก ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์˜ต์…˜.

โ˜๏ธCross-Origin์ด ๋ญ์š”..?
Same-Site๋Š” ์š”์ฒญ์„ ๋ณด๋‚ธ Origin(URL)๊ณผ ์„œ๋ฒ„์˜ ๋„๋ฉ”์ธ, ํ”„๋กœํ† ์ฝœ, ํฌํŠธ๊ฐ€ ๊ฐ™์€ ๊ฒฝ์šฐ๋ฅผ ๋งํ•œ๋‹ค. ์ด ์ค‘ ํ•˜๋‚˜๋ผ๋„ ๋‹ค๋ฅด๋ฉด Cross-Origin๋ผ๊ณ  ํ•œ๋‹ค.
์˜ˆ์‹œ๐Ÿคฏ
Origin : https://www.example.com:80,
์ฟ ํ‚ค URL : https://api.example.com:80 ๋ผ๋ฉด Cross-Origin

  • Lax : Cross-Origin ์š”์ฒญ์ด๋ฉด 'GET' ๋ฉ”์†Œ๋“œ์— ๋Œ€ํ•ด์„œ๋งŒ ์ฟ ํ‚ค๋ฅผ ์ „์†กํ•  ์ˆ˜ =์žˆ๋‹ค.
  • Strict : Cross-Origin์ด ์•„๋‹Œ same-site ์ธ ๊ฒฝ์šฐ์—๋งŒ ์ฟ ํ‚ค๋ฅผ ์ „์†ก ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • None : ํ•ญ์ƒ ์ฟ ํ‚ค๋ฅผ ๋ณด๋‚ด์ค„ ์ˆ˜ ์žˆ๋‹ค. ๋‹ค๋งŒ ์ฟ ํ‚ค ์˜ต์…˜ ์ค‘ Secure ์˜ต์…˜์ด ํ•„์š”ํ•˜๋‹ค. -> HTTPS ํ”„๋กœํ† ์ฝœ์—์„œ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์˜๋ฏธ

ํ•ด๋‹น ์˜ต์…˜์„ ์ง€์ •ํ•œ ๋‹ค์Œ ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ๋กœ ์ฟ ํ‚ค๋ฅผ ์ฒ˜์Œ ์ „์†กํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ํ—ค๋”์— Set-Cookie๋ผ๋Š” ํ”„๋กœํ„ฐํ”ผ์— ์ฟ ํ‚ค๋ฅผ ๋‹ด์•„ ์ „์†กํ•œ๋‹ค.

์ดํ›„, ํด๋ผ์ด์–ธํŠธ ํ˜น์€ ์„œ๋ฒ„์—์„œ ์ฟ ํ‚ค๋ฅผ ์ „์†กํ•ด์•ผ ํ•œ๋‹ค๋ฉด ํด๋ผ์ด์–ธํŠธ๋Š” ํ—ค๋”์— Cookie๋ผ๋Š” ํ”„๋กœํ„ฐํ‹ฐ์— ์ฟ ํ‚ค๋ฅผ ๋‹ด์•„ ์„œ๋ฒ„์— ์ฟ ํ‚ค๋ฅผ ์ „์†กํ•˜๊ฒŒ ๋œ๋‹ค.

๐Ÿ’กSame-Origin๊ณผ Same-Site์˜ ์ฐจ์ด

Cookie๐Ÿช์˜ ๋™์ž‘๋ฐฉ์‹

  1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋กœ๊ทธ์ธ ์ •๋ณด๋ฅผ ๋‹ด์•„ ์„œ๋ฒ„์— ์š”์ฒญ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ธ๋‹ค.
  2. ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ํ•  ๋•Œ, ๋กœ๊ทธ์ธ ์ •๋ณด๊ฐ€ ๋‹ด๊ธด ์ฟ ํ‚ค๋ฅผ ๋งŒ๋“ค์–ด ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์‘๋‹ต ๋ฐ์ดํ„ฐ์™€ ํ•จ๊ป˜ ๋ณด๋‚ธ๋‹ค.
  3. ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ์„œ๋ฒ„๋กœ ๋ถ€ํ„ฐ ์ „๋‹ฌ ๋ฐ›์€ ์ฟ ํ‚ค๋ฅผ ์ €์žฅํ•ด๋‘์—ˆ๋‹ค๊ฐ€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋‹ค์Œ ์š”์ฒญ์„ ํ•  ๋•Œ ์ž๋™์œผ๋กœ ์ฟ ํ‚ค๋ฅผ ์š”์ฒญ ๋ฐ์ดํ„ฐ์— ๋ฌถ์–ด์„œ ์„œ๋ฒ„์— ์ „์†กํ•œ๋‹ค.
  4. ์„œ๋ฒ„๋Š” ์š”์ฒญ์— ๋“ค์–ด์žˆ๋Š” ์ฟ ํ‚ค๋ฅผ ์ฝ์–ด ํด๋ผ์ด์–ธํŠธ๋ฅผ ํŒŒ์•…ํ•œ ํ›„ ์ฒ˜๋ฆฌํ•œ๋‹ค.

๐Ÿ’ก๊ธฐ์–ตํ•ด์•ผ ํ•  ์ !
๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์„œ๋ฒ„์— ์ฟ ํ‚ค๋ฅผ ๋ณด๋‚ด๋Š” ์ผ์€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์ฃผ์ง€๋งŒ ์„œ๋ฒ„์—์„œ ๋ธŒ๋ผ์šฐ์ €๋กœ ์ฟ ํ‚ค๋ฅผ ๋ณด๋‚ผ ๋•Œ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

Session

Session?

  • ์ฟ ํ‚ค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜์ง€๋งŒ, ์‚ฌ์šฉ์ž ์ •๋ณด ํŒŒ์ผ์„ ๋ธŒ๋ผ์šฐ์ €์— ์ €์žฅํ•˜๋Š” ์ฟ ํ‚ค์™€ ๋‹ฌ๋ฆฌ ์„ธ์…˜์€ ์„œ๋ฒ„์—์„œ ๊ด€๋ฆฌํ•œ๋‹ค.
  • ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด Session Id๋ฅผ ๋ถ€์—ฌํ•œ๋‹ค.
  • Session Id๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด, ์„œ๋ฒ„์˜ ์—”์ง„์ด ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๊ณ ์œ ํ•œ ๊ฐ’์„ ๊ฐ€์ง„๋‹ค.
  • ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์„œ๋ฒ„์— ์ ‘์†ํ•ด ์ ‘์†์„ ์ข…๋ฃŒํ•  ๋•Œ๊นŒ์ง€ ์ธ์ฆ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•œ๋‹ค.
  • ์ ‘์† ์‹œ๊ฐ„์— ์ œํ•œ์„ ๋‘์–ด ์ผ์ • ์‹œ๊ฐ„ ๋™์•ˆ ์‘๋‹ต์ด ์—†์„ ๊ฒฝ์šฐ ์ธ์ฆ ์ƒํƒœ ์œ ์ง€ํ•˜์ง€ ์•Š๋„๋ก ์„ค์ • ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์„œ๋ฒ„์— ์ €์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฟ ํ‚ค๋ณด๋‹ค ๋ณด์•ˆ์—๋Š” ๊ฐ•ํ•˜์ง€๋งŒ, ์‚ฌ์šฉ์ž์˜ ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•จ์—๋”ฐ๋ผ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋งŽ์ด ์ฐจ์ง€ํ•˜๊ฒŒ ๋œ๋‹ค.

Session์˜ ํŠน์ง•

  • ํด๋ผ์ด์–ธํŠธ๋งˆ๋‹ค ๊ณ ์œ ํ•œ ID๋ฅผ ๋ถ€์—ฌํ•œ๋‹ค.
  • Session Id๋กœ ํด๋ผ์ด์–ธํŠธ๋ฅผ ๊ตฌ๋ถ„ํ•ด ํด๋ผ์ด์–ธํŠธ์˜ ์š”๊ตฌ์— ๋งž๋Š” ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

Session์˜ ๋™์ž‘๋ฐฉ์‹

  1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—๊ฒŒ ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด ์„œ๋ฒ„๋Š” DB์— ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ธ ์ •๋ณด๋ฅผ ์ €์žฅํ•œ๋‹ค.
  2. DB์˜ ์„ธ์…˜ ์Šคํ† ์–ด๋Š” ๊ณ ์œ ํ•œ Session Id๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์„œ๋ฒ„๋Š” ์ฟ ํ‚ค ํ”„๋กœํ„ฐํ”ผ์ธ Set-Cookie์— Session Id๋ฅผ ๋‹ด์•„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  3. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ƒˆ๋กœ์šด ์š”์ฒญ์„ ํ•  ๋•Œ, ๋ธŒ๋ผ์šฐ์ €๋Š” ์ž๋™์œผ๋กœ ์„œ๋ฒ„์—๊ฒŒ ์ฟ ํ‚ค๋ฅผ ๋ณด๋‚ด๊ณ  ์ฟ ํ‚ค์— ๋‹ด๊ธด Session Id๋ฅผ ํ™•์ธํ•ด ํด๋ผ์ด์–ธํŠธ ์ •๋ณด๋ฅผ ์—…๋ฐ์ดํŠธํ•œ๋‹ค.
profile
๐Ÿง‘โ€๐Ÿ’ป๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž, ์กฐ๊ธˆ์”ฉ ๊พธ์ค€ํ•˜๊ฒŒ

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