๐Ÿ’ป

์ฟ ํ‚ค(Cookie)์™€ ์„ธ์…˜(Session)์˜ ์ฐจ์ด ๋ณธ๋ฌธ

TIL/๊ฐœ๋ฐœ์ƒ์‹

์ฟ ํ‚ค(Cookie)์™€ ์„ธ์…˜(Session)์˜ ์ฐจ์ด

๋˜ํšจ๋‹ˆ 2020. 5. 28. 09:07

์ฟ ํ‚ค์™€ ์„ธ์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š”?

 

HTTP ํ”„๋กœํ† ์ฝœ ์˜ ํŠน์ง•์ธ

1) ๋น„์—ฐ๊ฒฐ์ง€ํ–ฅ(Connectionless)

: HTTP๋Š” ๋จผ์ € ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์š”์ฒญ(request)์„ ๋ณด๋‚ด๋ฉด, ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์š”์ฒญ์— ๋งž๋Š” ์‘๋‹ต(response)๋ฅผ ๋ณด๋‚ด๊ณ  ์ ‘์†์„ ๋Š๋Š”๋‹ค.

2) ์ƒํƒœ์ •๋ณด์œ ์ง€์•ˆํ•จ(Stateless)

: ์—ฐ๊ฒฐ์„ ๋Š๋Š” ์ˆœ๊ฐ„ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„์˜ ํ†ต์‹ ์ด ๋๋‚˜๋ฉฐ ์ƒํƒœ ์ •๋ณด๋Š” ์œ ์ง€ํ•˜์ง€ ์•Š๋Š” ํŠน์„ฑ์ด ์žˆ๋‹ค.

 

๋น„์—ฐ๊ฒฐ์ง€ํ–ฅ์ด๋ผ๋Š” ํŠน์„ฑ ๋•๋ถ„์— ๊ณ„์†ํ•ด์„œ ํ†ต์‹  ์—ฐ๊ฒฐ์„ ์œ ์ง€ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ฆฌ์†Œ์Šค ๋‚ญ๋น„๊ฐ€ ์ค„์–ด๋“œ๋Š” ๊ฒƒ์€ ์žฅ์ ์ด์ง€๋งŒ ํ†ต์‹ ํ•  ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ ์ปค๋„ฅ์…˜์„ ์—ด๊ธฐ ๋•Œ๋ฌธ์— ํด๋ผ์ด์–ธํŠธ๋Š” ๋‚ด๊ฐ€ ๋ˆ„๊ตฌ์ธ์ง€ ์ธ์ฆ์„ ๊ณ„์†ํ•ด์•ผํ•˜๋Š” ๋‹จ์ ์ด ์ƒ๊ธด๋‹ค.

 

https://jeong-pro.tistory.com/80

 

Web - ์ฟ ํ‚ค์™€ ์„ธ์…˜์˜ ์ฐจ์ด, ์šฉ๋„, ์‚ฌ์šฉ๋ฒ•(cookie,session)

์›น์—์„œ ์ฟ ํ‚ค์™€ ์„ธ์…˜ (Cookie & Session) ์ฟ ํ‚ค์™€ ์„ธ์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  HTTP ํ”„๋กœํ† ์ฝœ์˜ ํŠน์ง•์ด์ž ์•ฝ์ ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค. HTTP ํ”„๋กœํ† ์ฝœ์˜ ํŠน์ง• 1) ๋น„์—ฐ๊ฒฐ์ง€ํ–ฅ(Connectionless) HTTP๋Š” ๋จผ์ € ํด๋ผ์ด๏ฟฝ๏ฟฝ

jeong-pro.tistory.com

์ด๋Ÿฌํ•œ HTTP ํ”„๋กœํ† ์ฝœ์˜ ๋‹จ์ ์„ ๋ณด์•ˆํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ฟ ํ‚ค์™€ ์„ธ์…˜์„ ์‚ฌ์šฉํ•œ๋‹ค. 

 

์ฟ ํ‚ค(Cookie)

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

- ์ฟ ํ‚ค์—๋Š” ์ด๋ฆ„, ๊ฐ’, ๋งŒ๋ฃŒ๋‚ ์งœ(์ฟ ํ‚ค ์ €์žฅ๊ธฐ๊ฐ„), ๊ฒฝ๋กœ ์ •๋ณด๊ฐ€ ๋“ค์–ด์žˆ๋‹ค.

- ์ฟ ํ‚ค๋Š” ์ผ์ •์‹œ๊ฐ„๋™์•ˆ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. (๋กœ๊ทธ์ธ ์ƒํƒœ ์œ ์ง€์— ํ™œ์šฉ)

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

 

- ์ฟ ํ‚ค ํ”„๋กœ์„ธ์Šค

1. ๋ธŒ๋ผ์šฐ์ €์—์„œ ์›นํŽ˜์ด์ง€ ์ ‘์†

2. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ•œ ์›นํŽ˜์ด์ง€๋ฅผ ๋ฐ›์œผ๋ฉด์„œ ์ฟ ํ‚ค๋ฅผ ํด๋ผ์ด์–ธํŠธ ๋กœ์ปฌ(ํ•˜๋“œ)์— ์ €์žฅ

3. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์žฌ ์š”์ฒญ์‹œ ์›นํŽ˜์ด์ง€ ์š”์ฒญ๊ณผ ํ•จ๊ป˜ ์ฟ ํ‚ค๊ฐ’๋„ ์ „์†ก

4. ์ง€์†์ ์œผ๋กœ ๋กœ๊ทธ์ธ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์‚ฌ์šฉ

 

- ํด๋ผ์ด์–ธํŠธ์— 300๊ฐœ๊นŒ์ง€ ์ฟ ํ‚ค์ €์žฅ ๊ฐ€๋Šฅ, ํ•˜๋‚˜์˜ ๋„๋ฉ”์ธ๋‹น 20๊ฐœ์˜ ๊ฐ’๋งŒ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ, ํ•˜๋‚˜์˜ ์ฟ ํ‚ค๊ฐ’์€ 4KB๊นŒ์ง€ ์ €์žฅ. Response Header์— Set-Cookie ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ์— ์ฟ ํ‚ค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

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

 

- ์˜ˆ)

์ž๋™๋กœ๊ทธ์ธ, ํŒ์—…์—์„œ "์˜ค๋Š˜ ๋” ์ด์ƒ ์ด ์ฐฝ์„ ๋ณด์ง€ ์•Š์Œ" ์ฒดํฌ

์‡ผํ•‘๋ชฐ์˜ ์žฅ๋ฐ”๊ตฌ๋‹ˆ

 

์„ธ์…˜(Session)

- ์ผ์ • ์‹œ๊ฐ„ ๋™์•ˆ ๊ฐ™์€ ๋ธŒ๋ผ์šฐ์ €๋กœ๋ถ€ํ„ฐ ๋“ค์–ด์˜ค๋Š” ์ผ๋ จ์˜ ์š”๊ตฌ๋ฅผ ํ•˜๋‚˜์˜ ์ƒํƒœ๋กœ ๋ณด๊ณ  ๊ทธ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ธฐ์ˆ 

- ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด ์›น ์„œ๋ฒ„์— ์ ‘์†ํ•œ ์ดํ›„๋กœ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ข…๋ฃŒํ•  ๋•Œ๊นŒ์ง€ ์œ ์ง€๋˜๋Š” ์ƒํƒœ

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

 

- ์„ธ์…˜ ํ”„๋กœ์„ธ์Šค

1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์ ‘์†์‹œ ์„ธ์…˜ ID๋ฅผ ๋ฐœ๊ธ‰

2. ์„œ๋ฒ„์—์„œ๋Š” ํด๋ผ์ด์–ธํŠธ๋กœ ๋ฐœ๊ธ‰ํ•ด์ค€ ์„ธ์…˜ ID๋ฅผ ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•ด ์ €์žฅ (JSESSIONID)

3. ํด๋ผ์ด์–ธํŠธ๋Š” ๋‹ค์‹œ ์ ‘์†ํ•  ๋•Œ, ์ด ์ฟ ํ‚ค(JSESSIONID)๋ฅผ ์ด์šฉํ•ด์„œ ์„ธ์…˜ID๊ฐ’์„ ์„œ๋ฒ„์— ์ „๋‹ฌ

์ฆ‰, ์„ธ์…˜์„ ๊ตฌ๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ID๊ฐ€ ํ•„์š”ํ•˜๊ณ  ๊ทธ ID๋งŒ ์ฟ ํ‚ค๋ฅผ ์ด์šฉํ•ด์„œ ์ €์žฅํ•ด๋†“๋Š”๋‹ค. (์ฟ ํ‚ค์‚ฌ์šฉ) ์ฟ ํ‚ค๋Š” ์ž๋™์œผ๋กœ ์„œ๋ฒ„์— ์ „์†ก๋˜๋‹ˆ๊นŒ ์„œ๋ฒ„์—์„œ ์„ธ์…˜์•„์ด๋””์— ๋”ฐ๋ฅธ ์ฒ˜๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Œ

์˜ˆ๋ฅผ ๋“ค๋ฉด, ๊ฒŒ์‹œํŒ์— ๊ธ€์„ ์ž‘์„ฑํ•  ๋•Œ ์ž‘์„ฑ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์„ธ์…˜์— ์žˆ๋Š” ์•„์ด๋””๋ฅผ ์ฐธ์กฐํ•ด์„œ ์ž‘์„ฑ์ž๋ฅผ ์ง€์ •ํ•˜๊ฒŒ ํ•œ๋‹ค.

 

- ์˜ˆ)

๋กœ๊ทธ์ธ ์ •๋ณด ์œ ์ง€

 

 

์ •๋ฆฌ

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

1) ์ €์žฅ ์œ„์น˜ -> ์ฟ ํ‚ค๋Š” ํด๋ผ์ด์–ธํŠธ์— ํŒŒ์ผ๋กœ ์ €์žฅ, ์„ธ์…˜์€ ์„œ๋ฒ„์— ์ €์žฅ

2) ๋ณด์•ˆ -> ์„ธ์…˜์ด ๋ณด์•ˆ์— ๋” ์ข‹๋‹ค.

3) ๋ผ์ดํ”„ ์‚ฌ์ดํด -> ์ฟ ํ‚ค๋Š” ์ฟ ํ‚ค์‚ญ์ œํ•˜๊ธฐ ์ „๊นŒ์ง€ ์œ ์ง€๋˜์ง€๋งŒ, ์„ธ์…˜์€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ๋งŒ๋ฃŒ์‹œ๊ฐ„์— ์ƒ๊ด€์—†์ด ์‚ญ์ œ

4) ์†๋„ -> ์„ธ์…˜์ด ๋น„๊ต์  ๋Š๋ฆฌ๋‹ค.

 

* ์„ธ์…˜์ด ์ข‹์€๋ฐ ์™œ ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋ƒ?

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

 

๋ฐ˜์‘ํ˜•
Comments