CS/๐ŸŒ ๋„คํŠธ์›Œํฌ

CS/๐ŸŒ ๋„คํŠธ์›Œํฌ

[๐ŸŒ ๋„คํŠธ์›Œํฌ] Cookie์™€ Session ๊ทธ๋ฆฌ๊ณ  JWT

HTTP ํŠน์„ฑ HTTP๋Š” stateless, connectionless ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋˜๋ฉด ์—ฐ๊ฒฐ์„ ๋Š์–ด๋ฒ„๋ฆฐ๋‹ค. ๋”ฐ๋ผ์„œ ํด๋ผ์ด์–ธํŠธ์— ๋Œ€ํ•œ ์ด์ „์˜ ์ƒํƒœ ์ •๋ณด ๋ฐ ํ˜„์žฌ ํ†ต์‹ ์˜ ์ƒํƒœ๊ฐ€ ๋‚จ์•„์žˆ์ง€ ์•Š๋‹ค. ์—ฐ๊ฒฐ์„ ๊ณ„์† ์œ ์ง€ํ•œ๋‹ค๋ฉด ์ด์— ๋”ฐ๋ฅธ ์ž์› ๋‚ญ๋น„๊ฐ€ ์‹ฌํ•ด์ง€๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ํ•˜์ง€๋งŒ ์ƒํƒœ๊ฐ€ ๋‚จ์•„์žˆ์ง€ ์•Š์•„ ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜ ์—†๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. ๋กœ๊ทธ์ธ์„ ํ•˜๋”๋ผ๋„ ๋‹ค์Œ ์š”์ฒญ์—์„œ ํ•ด๋‹น ํด๋ผ์ด์–ธํŠธ๋ฅผ ๊ธฐ์–ตํ•˜์ง€ ๋ชปํ•˜๋ฏ€๋กœ ๋‹ค์‹œ ๋กœ๊ทธ์ธ์„ ํ•ด์•ผํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋Ÿฌํ•œ ๋น„์—ฐ๊ฒฐ์„ฑ๊ณผ ๋ฌด์ƒํƒœ์„ฑ ํŠน์ง•์„ ๋ณด์™„ํ•œ ๊ธฐ์ˆ ์ด Cookie์™€ Session์ด๋‹ค. Cookie ๐Ÿ‘‰ ํด๋ผ์ด์–ธํŠธ(์›น ๋ธŒ๋ผ์šฐ์ €)์— ์ €์žฅ๋˜๋Š” ์ž‘์€ ๋ฐ์ดํ„ฐ ์กฐ๊ฐ Key-Valueํ˜•์‹์œผ๋กœ ์ €์žฅ๋˜๋ฉฐ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ๋งˆ๋‹ค ๋งค๋ฒˆ ..

CS/๐ŸŒ ๋„คํŠธ์›Œํฌ

[๐ŸŒ ๋„คํŠธ์›Œํฌ] CORS & SOP

ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ ๊ฐ„์˜ ํ†ต์‹ ์„ ํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์ฆ‰, ํด๋ผ์ด์–ธํŠธ์—์„œ API๋ฅผ ์ง์ ‘ ํ˜ธ์ถœํ•  ๋•Œ CORS ์ •์ฑ… ์œ„๋ฐ˜์œผ๋กœ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•œ๋‹ค. CORS๋Š” "๊ต์ฐจ ์ถœ์ฒ˜ ๋ฆฌ์†Œ์Šค ๊ณต์œ "๋ฅผ ์˜๋ฏธํ•˜๊ณ , SOP๋Š” ๊ทธ ๋ฐ˜๋Œ€์ธ "๋™์ผ ์ถœ์ฒ˜ ์ •์ฑ…"์„ ์˜๋ฏธํ•œ๋‹ค. "์ถœ์ฒ˜๊ฐ€ ๊ต์ฐจํ•œ๋‹ค"๋Š” ์˜๋ฏธ๊ฐ€ ๋ญ˜๊นŒ? ์ถœ์ฒ˜ (Origin) ์šฐ์„  CORS์™€ SOP ๊ณตํ†ต์œผ๋กœ Origin(์ถœ์ฒ˜)์ด๋ผ๋Š” ๋‹จ์–ด๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค. ์ถœ์ฒ˜๋ž€ URL์—์„œ ๋„๋ฉ”์ธ, ํ”„๋กœํ† ์ฝœ, ํฌํŠธ๊นŒ์ง€ ํฌํ•จํ•˜๋Š” ๊ฐœ๋…์œผ๋กœ ์ด ์ค‘ ํ•˜๋‚˜๋ผ๋„ ๋‹ค๋ฅด๊ฒŒ ๋˜๋ฉด CORS ์—๋Ÿฌ๋ฅผ ๋งŒ๋‚˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ๋„๋ฉ”์ธ (Hostname) : myshop.com ์ถœ์ฒ˜ (Origin) : https://myshop.com "์ถœ์ฒ˜๊ฐ€ ๊ต์ฐจํ•œ๋‹ค" ๐Ÿ‘‰ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฃผ๊ณ ๋ฐ›์œผ๋ ค๋Š” '๋‘ ์ถœ์ฒ˜๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅด๋‹ค'๋ฅผ ์˜๋ฏธ CORS ..

soogoori
'CS/๐ŸŒ ๋„คํŠธ์›Œํฌ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก