Study/cs (computer science)

์ฟ ํ‚ค 1๋ถ€ : HTTP๋กœ ์„ค๋ช…ํ•˜๋Š” ์ฟ ํ‚ค

๊ฐœ๋ฐœํ•˜๋Š” ์ฃผ๋””์”จ 2023. 11. 24. 11:23

 

์ฟ ํ‚ค๋Š” ํด๋ผ์ด์–ธํŠธ์— ์ €์žฅ๋˜๊ณ … ์Œ.. ๋ณด์•ˆ์— ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
-
๊ทธ๋Ÿผ ๋ณด์•ˆ์„ ์œ„ํ•ด์„œ ์ฟ ํ‚ค๋Š” ์•ˆ ์“ฐ๋Š” ๊ฒŒ ์ข‹๊ฒ ๋„ค์š”?

 

 

์ฟ ํ‚ค๊ฐ€ ์–ด๋–ป๊ฒŒ ์„œ๋ฒ„์™€ ๋ธŒ๋ผ์šฐ์ € ๊ฐ„์— ์ด๋™์„ ํ•˜๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ์ฟ ํ‚ค์˜ ์œ ํšจ ๊ธฐ๊ฐ„๊ณผ ์ ์šฉ ๋ฒ”์œ„๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์ฟ ํ‚ค์˜ ํ•œ๊ณ„์™€ ๋Œ€์ฒด ๊ธฐ์ˆ ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

HTTP ์ฟ ํ‚ค(=๋ธŒ๋ผ์šฐ์ € ์ฟ ํ‚ค, ์›น ์ฟ ํ‚ค)๋ž€?

HTTP ์ฟ ํ‚ค(cookie)๋Š” ์„œ๋ฒ„๊ฐ€ ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ๋ธŒ๋ผ์šฐ์ € ์ธก์— ์ €์žฅํ•œ ํ›„ ๋‹ค์‹œ ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค๋Š” ๊ธฐ์ˆ , ๋˜๋Š” ๊ทธ ๋ฐ์ดํ„ฐ ์ž์ฒด๋ฅผ ๋œปํ•ฉ๋‹ˆ๋‹ค. ๋ณดํ†ต ๋ฐ์ดํ„ฐ๋Š” ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฌ๋‹ค๋Š” ๊ฒƒ์— ์ƒ์†Œํ•˜์‹ค ์ˆ˜ ์žˆ์ง€๋งŒ, ์„œ๋น„์Šค์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฅผ ๋งค๋ฒˆ ์„œ๋ฒ„์—์„œ ๋ฐ›์•„์˜ค๋Š” ๊ฒƒ์ด ๋น„ํšจ์œจ์ ์ผ ๋•Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์ด๋•Œ, HTTP ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. 

 

๐Ÿ”ฅ์—ฌ๊ธฐ์„œ ์ž ๊น
ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์„œ๋กœ ์•ฝ์†๋œ ๊ทœ์น™์ด ์žˆ์–ด์•ผ ํ•˜๊ธฐ ๋งˆ๋ จ์ž…๋‹ˆ๋‹ค. 

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

 

 

ํฌ๋กฌ ๋ธŒ๋ผ์šฐ์ €์˜ [๊ฐœ๋ฐœ์ž๋„๊ตฌ(F12)] ๋ฅผ ๋“ค์–ด๊ฐ€๋ณด๋ฉด Networkํƒญ์— Blocked response cookie ๋ผ๋Š” ๋ฐ•์Šค๊ฐ€ ๋ณด์ด์‹œ๋‚˜์š”? ์•ž์œผ๋กœ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•œ DevTools์ด๋‹ˆ ์ต์ˆ™ํ•ด์ง€๋Š” ๊ฒƒ์„ ๊ถŒ์žฅ๋“œ๋ ค์š” :)

 

 

์ฟ ํ‚ค์˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜

์ฟ ํ‚ค๋ฅผ ๊ธฐ์ˆ ์ ์œผ๋กœ ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜๋ ค๋ฉด ๋ธŒ๋ผ์šฐ์ €์™€ ์„œ๋ฒ„๊ฐ€ ์–ด๋–ค ๊ณผ์ •์„ ๊ฑฐ์ณ ์ฟ ํ‚ค๋ฅผ ์ฃผ๊ณ ๋ฐ›์œผ๋ฉฐ HTTP ํ†ต์‹ ์„ ํ•˜๋Š”์ง€ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋จผ์ € ์ฟ ํ‚ค๋ผ๋Š” ๋ฐ์ดํ„ฐ๋Š” ์–ด๋–ค ๋ชจ์–‘์ผ๊นŒ์š”? ์ฟ ํ‚ค๋Š” <์ด๋ฆ„>=<๊ฐ’> ํ˜•ํƒœ๋ฅผ ์ง€๋‹ˆ๋Š” ๋‹จ์ˆœํ•œ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. ์„œ๋ฒ„์™€ ๋ธŒ๋ผ์šฐ์ €๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ HTTP ๋ฉ”์‹œ์ง€ ์•ˆ์— ์ด ์ฟ ํ‚ค๋ฅผ ๋‹ด์•„์„œ ์ฃผ๊ณ ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

์„œ๋ฒ„๊ฐ€ ์–ด๋–ค ์ฟ ํ‚ค๋ฅผ ๋ธŒ๋ผ์šฐ์ €์— ์ €์žฅ์„ ํ•˜๊ณ  ์‹ถ์€๋ฐ ๋ฌธ์ œ๋Š” ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ ์—†์ด ํด๋ผ์ด์–ธํŠธ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋Ÿฌํ•œ ์ฟ ํ‚ค ์ „๋‹ฌ ๊ณผ์ •์€ ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์— ์‘๋‹ตํ•  ๋•Œ ์ผ์–ด๋‚˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. 

 

(๋งˆ์น˜.. ํด๋ผ์ด์–ธํŠธ๋ฅผ ํ–ฅํ•œ.. ์ผ๋ฐ˜์ ์ธ ์ง์‚ฌ๋ž‘์ด๋ผ๊ณ  ํ• ๊นŒ์š”..?ใ…Ž)

 

 

 

์„œ๋ฒ„๋Š” Set-Cookie๋ผ๋Š” ์‘๋‹ต ํ—ค๋”์— ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ˆ˜์‹ ํ•ด์•ผ ํ•  ์ฟ ํ‚ค ์ •๋ณด๋ฅผ ๋ช…์‹œํ•˜๋„๋ก ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ Set-Cookie ์‘๋‹ต ํ—ค๋”์—๋Š” ํ•˜๋‚˜์˜ ์ฟ ํ‚ค๋งŒ ๋‹ด์„ ์ˆ˜ ์žˆ์–ด์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ฟ ํ‚ค๋ฅผ ๋ณด๋‚ผ ๋•Œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ๋ชจ์Šต์ด ๋ฉ๋‹ˆ๋‹ค.

 

๋ฐฉ๋ฒ• 1.

Set-Cookie: <์ด๋ฆ„>=<๊ฐ’>
Set-Cookie: <์ด๋ฆ„>=<๊ฐ’>
Set-Cookie: <์ด๋ฆ„>=<๊ฐ’>

 

๋ฐฉ๋ฒ• 2.

Cookie: <์ด๋ฆ„>=<๊ฐ’>; <์ด๋ฆ„>=<๊ฐ’>; <์ด๋ฆ„>=<๊ฐ’>

 

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

 

 

์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ์ ์€ ์„œ๋ฒ„๊ฐ€ Set-Cookie ํ—ค๋”๋ฅผ ํ†ตํ•ด ๋ธŒ๋ผ์šฐ์ €๋กœ ์ฟ ํ‚ค๋ฅผ ๋ณด๋‚ด๋Š” ๊ฒƒ์€ ์ผํšŒ์„ฑ ์ž‘์—…์ด์ง€๋งŒ, ๋ฐ˜๋Œ€๋กœ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ Cookie ํ—ค๋”๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„๋กœ ์ฟ ํ‚ค๋ฅผ ๋Œ๋ ค๋ณด๋‚ด๋Š” ๊ฒƒ์€ ์ผ์ • ์‹œ๊ฐ„ ๋™์•ˆ ๋ฐ˜๋ณตํ•ด์„œ ์ˆ˜ํ–‰๋˜๋Š” ์ž‘์—…์ด๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์‰ฝ๊ฒŒ ๋งํ•ด์„œ ์„œ๋ฒ„ ์ž…์žฅ์—์„œ ๋ณด๋ฉด ์‚ฌ์‹ค ์ฟ ํ‚ค๋Š” ์™„์ „ํžˆ ๊ฐœ๊ฟ€์ธ ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค... ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ์ฟ ํ‚ค ํ•˜๋‚˜๋งŒ ํˆญ ๋˜์ ธ๋†“์œผ๋ฉด ๐Ÿช ๋งค๋ฒˆ ์‹œํ‚ค์ง€ ์•Š์•„๋„ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์Šค์Šค๋กœ ๊ณ„์†ํ•ด์„œ ์ฟ ํ‚ค๋ฅผ ๋“ค๊ณ  ์˜ค๋‹ˆ๊นŒ์š” ๐Ÿšš

 

Set-Cookie ์‘๋‹ต ํ—ค๋”๋กœ ๋„˜์–ด์˜จ ์ฟ ํ‚ค๋ฅผ ๋‹ค์‹œ Cookie ์š”์ฒญ ํ—ค๋”๋กœ ๋Œ๋ ค๋ณด๋‚ด๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•œ ์ด์œ 

๋ธŒ๋ผ์šฐ์ €๋ผ๋Š” HTTP ํด๋ผ์ด์–ธํŠธ๋งŒ ํ•ด์ฃผ๋Š” ๋งค์šฐ ๋…ํŠนํ•œ ์ž‘์—…์ž…๋‹ˆ๋‹ค.

๋งŒ์•ฝ curl ์ปค๋งจ๋“œ์ฒ˜๋Ÿผ ๋‹ค๋ฅธ HTTP ํด๋ผ์ด์–ธํŠธ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Set-Cookie ์‘๋‹ต ํ—ค๋”๋Š” Content-Type๊ณผ Date์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ํ‰๋ฒ”ํ•œ ์‘๋‹ต ํ—ค๋”์ฒ˜๋Ÿผ ๊ทธ ์ด์ƒ์˜ ํŠน๋ณ„ํ•œ ์˜๋ฏธ๋ฅผ ๊ฐ–์ง€ ์•Š๊ฒŒ ๋œ๋‹ค.

๊ฒฐ๋ก ์ ์œผ๋กœ ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ฟ ํ‚ค๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ด๋Ÿฌํ•œ ์ผ์ข…์˜ ๊ณ„์•ฝ์„ ์ค€์ˆ˜ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์— ์ฟ ํ‚ค๋ฅผ ์ €์žฅํ•ด ๋†“๊ณ  ๊ณ„์†ํ•ด์„œ ๋ฐ›์•„์˜ฌ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

์ฟ ํ‚ค์˜ ์†ก์ˆ˜์‹  ์˜ˆ์ œ

์„œ๋ฒ„์—์„œ a=1, b=2๋ผ๋Š” 2๊ฐœ์˜ ์ฟ ํ‚ค๋ฅผ ๋ธŒ๋ผ์šฐ์ €์— ์ €์žฅํ•˜๊ณ ์ž ํ•œ๋‹ค. www.test.com ์„œ๋ฒ„๋Š” ๋ธŒ๋ผ์šฐ์ €์˜ ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด ๊ฐ ์ฟ ํ‚ค๋ฅผ Set-Cookie ํ—ค๋”์— ์‹ค์–ด์„œ ์‘๋‹ตํ•˜๋Š” ์˜ˆ์ œ๋ฅผ ๋ณด๊ณ  ์ž‘์„ฑํ•ด๋ด…์‹œ๋‹ค.

 

HTTP ์š”์ฒญ

GET /index.html
HTTP/1.1 Host: www.test.com

 

HTTP ์‘๋‹ต

HTTP/1.1 200 OK
Content-Type: text/html
Set-Cookie: a=1
Set-Cookie: b=2

 

๋ธŒ๋ผ์šฐ์ €๋Š” ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ์ด 2๊ฐœ์˜ ์ฟ ํ‚ค๋ฅผ ๋™์ผํ•œ ์„œ๋ฒ„๋กœ ์š”์ฒญ์„ ํ•  ๋•Œ Cookie ํ—ค๋”์— ์ด์ „์— ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ›์•˜๋˜ ์ฟ ํ‚ค๋ฅผ ๊ทธ๋Œ€๋กœ ๋Œ๋ ค๋ณด๋‚ด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

HTTP ์š”์ฒญ 2

GET /index.html
HTTP/1.1 Host: www.test.com
Cookie: a=1; b=2

 

๋ธŒ๋ผ์šฐ์ €๋Š” ์‚ฌ์šฉ์ž๊ฐ€ test.com ๋„๋ฉ”์ธ์— ์žˆ๋Š” ๋™์•ˆ /index.html /about.html /contact.html ๋“ฑ ๋งค๋ฒˆ ๊ฐ™์€ ์ฟ ํ‚ค๋ฅผ ๋Œ๋ ค์ฃผ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„๋Š” ์ฟ ํ‚ค๋ผ๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ†ตํ•ด ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ธŒ๋ผ์šฐ์ €์— ์ €์žฅํ•ด ๋†จ๋‹ค๊ฐ€ ๋ธŒ๋ผ์šฐ์ € ์š”์ฒญ ์‹œ ํ•จ๊ป˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค๋„๋ก ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š”๋ฐ ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ญ๊ฐ€ ์ข‹์„๊นŒ์š”?

 

์„œ๋ฒ„์—์„œ ํ•„์ˆ˜ parameter๋กœ ํ•„์š”๋กœ ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋“ค์ด ์ข…์ข… ์•„๋‹ˆ ์ž์ฃผ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜, ํ•„์ˆ˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ์„œ๋ฒ„์—์„œ ์ฐพ์•„ ์„œ๋น„์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ๋น„ํšจ์œจ์ ์ผ ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฟ ํ‚ค๋ฅผ ํ™œ์šฉํ•˜๊ณค ํ•ฉ๋‹ˆ๋‹ค. (์‹ค๋ฌด์—์„œ๋„ ์ž์ฃผ ์“ฐ์ด๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹คใ…Žใ…Ž)

 

 

์ฟ ํ‚ค์˜ ์œ ํšจ ๊ธฐ๊ฐ„

๋ธŒ๋ผ์šฐ์ €๋Š” ์ผ์ • ์‹œ๊ฐ„ ๋™์•ˆ ๊ณ„์†ํ•ด์„œ ์„œ๋ฒ„๋กœ ์ฟ ํ‚ค๋ฅผ ๋Œ๋ ค๋ณด๋‚ด๋Š”๋ฐ ์œ ํšจ๊ธฐ๊ฐ„์€ ์žˆ์„๊นŒ์š”? โญ•๏ธ ๋„ค, ๋‹น์—ฐํ•˜์ฃ !

๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ฟ ํ‚ค๋ฅผ ์–ผ๋งˆ๋‚˜ ์˜ค๋žซ๋™์•ˆ ๋Œ๋ ค๋ณด๋‚ด์•ผ ํ•˜๋Š”์ง€๋Š” ์„œ๋ฒ„๊ฐ€ ๋งจ ์ฒ˜์Œ ์ฟ ํ‚ค๋ฅผ ๋ณด๋‚ผ ๋•Œ ๊ฒฐ์ •์„ ํ•˜๋ฉฐ, Set-Cookie ์‘๋‹ต ํ—ค๋”๋ฅผ ํ†ตํ•ด ๋ช…์‹œ๋ผ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

์œ ํšจ ๊ธฐ๊ฐ„ ๋ฏธ์„ค์ •์‹œ,

์œ ํšจ ๊ธฐ๊ฐ„์ด ๋ณ„๋„๋กœ ๋ช…์‹œ๋˜์ง€ ์•Š์€ ์ฟ ํ‚ค๋ฅผ ๋ณดํ†ต ์„ธ์…˜ ์ฟ ํ‚ค(session cookie)๋ผ๊ณ  ๋ถ€๋ฅด๋Š”๋ฐ ๋ธŒ๋ผ์šฐ์ €์˜ ์„ธ์…˜์ด ์ข…๋ฃŒ๋  ๋•Œ ํ•จ๊ป˜ ๋งŒ๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

์ฆ‰, ๋ธŒ๋ผ์šฐ์ €์˜ ํƒญ์ด๋‚˜ ์œˆ๋„๋ฅผ ๋‹ซ์œผ๋ฉด ์„œ๋ฒ„๊ฐ€ ๋ณด๋ƒˆ๋˜ ์ฟ ํ‚ค๋Š” ๋ชจ๋‘ ๋งŒ๋ฃŒ๋˜์–ด ๋ธŒ๋ผ์šฐ์ €๋Š” ๋” ์ด์ƒ ํ•ด๋‹น ์ฟ ํ‚ค๋ฅผ ์„œ๋ฒ„์— ๋Œ๋ ค๋ณด๋‚ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

์œ ํšจ ๊ธฐ๊ฐ„ ์„ค์ •์‹œ,

์œ ํšจ ๊ธฐ๊ฐ„์ด ๋ช…์‹œ๋˜์–ด ์žˆ๋Š” ์ฟ ํ‚ค๋ฅผ ์˜์† ์ฟ ํ‚ค(permanent cookie)๋ผ ํ•˜๋ฉฐ, ์„ธ์…˜๊ณผ ๋ฌด๋ฐฉํ•˜๊ฒŒ ํŠน์ • ๊ธฐ๊ฐ„์ด๋‚˜ ํŠน์ • ์‹œ์ ๊นŒ์ง€ ์œ ํšจํ•ฉ๋‹ˆ๋‹ค. ์ฟ ํ‚ค์˜ ์œ ํšจ ๊ธฐ๊ฐ„์„ ๋ช…์‹œํ•  ๋•Œ๋Š” Set-Cookie ์‘๋‹ต ํ—ค๋”์— Expires ์†์„ฑ์ด๋‚˜ Max-Age ์†์„ฑ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

HTTP์‘๋‹ต

Set-Cookie: <์ฟ ํ‚ค ์ด๋ฆ„>=<์ฟ ํ‚ค ๊ฐ’>; Expires=์ข…๋ฃŒ ์‹œ์  
Set-Cookie: <์ฟ ํ‚ค ์ด๋ฆ„>=<์ฟ ํ‚ค ๊ฐ’>; Max-Age=์œ ํšจ ๊ธฐ๊ฐ„

 

Max-Age ์†์„ฑ์€ ์ดˆ ๋‹จ์œ„๋กœ ์„ค์ •ํ•˜๋ฉฐ, Expires ์†์„ฑ๊ณผ Max-Age ์†์„ฑ์ด ๋‘˜ ๋‹ค ์žˆ์„ ๊ฒฝ์šฐ Max-Age ์†์„ฑ์ด ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋‘˜ ๊ฐ€์ง€ ์†์„ฑ์ด ๋ชจ๋‘ ์—†์„ ๋•Œ ํ•ด๋‹น ์ฟ ํ‚ค๋Š” ์„ธ์…˜์ด ์ข…๋ฃŒ๋  ๋•Œ ๋งŒ๋ฃŒ๋˜๋Š” ์„ธ์…˜ ์ฟ ํ‚ค๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

 

๐Ÿ“Œ ๋ธŒ๋ผ์šฐ์ €์— ์ €์žฅํ•ด ๋‘์—ˆ๋˜ ์ฟ ํ‚ค๋ฅผ ์ฆ‰์‹œ ๋งŒ๋ฃŒํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด Max-Age ์†์„ฑ์„ 0์œผ๋กœ ์„ค์ •

 

 

์ฟ ํ‚ค์˜ ์ ์šฉ ๋ฒ”์œ„

๋„๋ฉ”์ธ์„ ํ†ตํ•ด ์ฟ ํ‚ค์˜ ์ ์šฉ ๋ฒ”์œ„๋ฅผ ๋„“ํžˆ๊ฑฐ๋‚˜ ์ขํž ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ข€ ๋” ์„ธ๋ฐ€ํ•˜๊ฒŒ ์ œ์–ดํ•ด๋ณผ๊นŒ์š”?

 

 

1. ์ฟ ํ‚ค์˜ ๋ฒ”์œ„ ํ™•์žฅํ•˜๊ธฐ

Set-Cookie ์‘๋‹ต ํ—ค๋”์— Domain ์†์„ฑ์„ ๋ช…์‹œํ•˜๋ฉด, ์„œ๋ธŒ ๋„๋ฉ”์ธ๊นŒ์ง€ ํฌํ•จ๋˜๋„๋ก ์ฟ ํ‚ค์˜ ๋ฒ”์œ„๊ฐ€ ํ™•์žฅ๋ฉ๋‹ˆ๋‹ค.

HTTP์‘๋‹ต

Set-Cookie: <์ฟ ํ‚ค ์ด๋ฆ„>=<์ฟ ํ‚ค ๊ฐ’>; Domain=๋„๋ฉ”์ธ

 

์˜ˆ๋ฅผ ๋“ค์–ด, Domain ์†์„ฑ์„ test.com์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €๋Š” a.test.com์œผ๋กœ ๋ถ€ํ„ฐ ๋ฐ›์€ ์ฟ ํ‚ค๋ฅผ, b.test.com์œผ๋กœ๋„ ๋ณด๋‚ด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ a.test.com๊ณผ b.test.com์ด ์ฟ ํ‚ค๋ฅผ ๊ณต์œ ํ•˜๋Š” ํšจ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•  ๋•Œ, ์„ค๊ณ„์— ์˜ํ•œ ๊ณต์œ ๋ผ๋ฉด ๊ดœ์ฐฎ์ง€๋งŒ ์ž˜๋ชป๋œ ์ดํ•ด๋กœ ๊ณต์œ /๋ˆ„์ˆ˜๋˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ์น˜๋ช…์ ์ธ ์‹ค์ˆ˜๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค๐Ÿ˜‡

 

2. ์ฟ ํ‚ค์˜ ๋ฒ”์œ„ ์ถ•์†Œํ•˜๊ธฐ

Set-Cookie ์‘๋‹ต ํ—ค๋”์— Path ์†์„ฑ์„ ๋ช…์‹œํ•˜์—ฌ ์ฟ ํ‚ค์˜ ๋ฒ”์œ„๋ฅผ ํ•ด๋‹น ๋„๋ฉ”์ธ์˜ ํŠน์ • ๊ฒฝ๋กœ๋กœ ์ฟ ํ‚ค์˜ ๋ฒ”์œ„๋ฅผ ์ถ•์†Œ์‹œํ‚ค๋Š” ๋ฒ•

HTTP์‘๋‹ต

Set-Cookie: <์ฟ ํ‚ค ์ด๋ฆ„>=<์ฟ ํ‚ค ๊ฐ’>; Path=๊ฒฝ๋กœ

 

์˜ˆ๋ฅผ ๋“ค์–ด, Path ์†์„ฑ์ด /users๋ผ๊ณ  ์„ค์ •๋˜์–ด ์žˆ๋Š” ์ฟ ํ‚ค๋Š”, ๋ธŒ๋ผ์šฐ์ €๊ฐ€ /users๋ฅผ ํฌํ•จํ•œ ํ•˜์œ„ ๊ฒฝ๋กœ๋กœ ์š”์ฒญ์„ ํ•  ๋•Œ๋งŒ ์„œ๋ฒ„๋กœ ๋Œ๋ ค ๋ณด๋ƒ…๋‹ˆ๋‹ค.

 

 

์ฟ ํ‚ค์˜ ํ•œ๊ณ„

์ฟ ํ‚ค๋Š” ํด๋ผ์ด์–ธํŠธ ์ธก์— ์ €์žฅ๋˜๋Š” ์žฅ๋‹จ์ ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ์ฟ ํ‚ค์˜ ํ•œ๊ณ„์ ๋“ค์„ ์ž˜ ์ธ์ง€ํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

 

์ฒซ์งธ, ์ฟ ํ‚ค๋Š” ์œ ์‹ค๋˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.

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

๋‘˜์งธ, ์ฟ ํ‚ค๋Š” ๋ณ€์กฐ๋˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.

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

๋‘˜์งธ, ์ฟ ํ‚ค๋Š” ๋„๋‚œ๋˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.

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

 

์ด๋Ÿฌํ•œ ์ฟ ํ‚ค์˜ ํ•œ๊ณ„๋ฅผ ๊นจ๋‹ซ๊ฒŒ ๋˜๋ฉด ์‚ฌ์‹ค ์ฟ ํ‚ค๋กœ ์ €์žฅํ•  ๋งŒํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋”ฑํžˆ ์—†๋‹ค๊ณ  ๋Š๊ปด์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์š”์ฆ˜ ๊ฐ™์ด ๋ฐ์ดํ„ฐ๊ฐ€ ์ค‘์š”ํ•œ ์‹œ๋Œ€์— ์œ ์‹ค๋˜๊ฑฐ๋‚˜ ์กฐ์ž‘๋˜๊ฑฐ๋‚˜ ๋„๋‚œ๋˜์–ด๋„ ๋ฌด๋ฐฉํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋ ๊นŒ์š”? ์ ์žฌ์ ์†Œ์— ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์„์ง€ ํ•œ๋ฒˆ ๊ณ ๋ฏผํ•ด๋ณด๋Š” ์‹œ๊ฐ„์ด ๋˜์—ˆ์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค :)

 

 

๋งˆ์น˜๋ฉฐ

์ฟ ํ‚ค๋Š” ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€๋‚˜ ์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€์™€ ๊ฐ™์€ ์›น ์Šคํ† ๋ฆฌ์ง€ ๊ธฐ์ˆ ๋กœ ๋Œ€์ฒด๋˜๊ณค ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜, ์ฟ ํ‚ค๋Š” ์–ด๋”˜๊ฐ€์—์„œ ์˜ค๋Š˜๋„ ์“ฐ์ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์›น ๊ฐœ๋ฐœ์˜ ํŒจ๋Ÿฌ๋‹ค์ž„์ด ์ ์ฐจ ์ปค์ง€๋ฉฐ ์˜ˆ์ „๋ณด๋‹ค ๋งŽ์€ ์ฝ”๋“œ๊ฐ€ ์„œ๋ฒ„๊ฐ€ ์•„๋‹Œ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰๋˜๋ฉฐ, ๊ธฐ์ˆ ์ด ๋Š์ž„์—†์ด ๋ณ€ํ™”ํ•˜๊ณ  ์žˆ๋Š” ์™€์ค‘์—๋„ ์ฟ ํ‚ค๊ฐ€ ์‚ด์•„๋‚จ์€ ์ด์œ ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ์ด์œ ์ธ์ง€ ์ƒ๊ฐํ•ด๋ณด๋ฉฐ, ๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ ์—ฐ๊ฒฐ์ง€์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

๋.