SOP & CORS
ยท
๐ŸŒ Network/๐Ÿ“œHTTP
SOP์™€ CORS๋Š” ์›น ๊ด€๋ จ ๊ธฐ์ˆ ์„ ํ‘œ์ค€ํ™” ํ•ด์ฃผ๋Š” IETF(Internet Engineering Task Force) ๊ตญ์ œ ์ธํ„ฐ๋„ท ํ‘œ์ค€ํ™” ๊ธฐ๊ตฌ์—์„œ SOP์™€ CORS๋ฅผ ํ‘œ์ค€์œผ๋กœ์จ ์ •์˜ํ•˜๊ณ  ์žˆ๋‹ค. ์ฆ‰, ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ์ด ํ‘œ์ค€์„ ๋ฒ•์ ์œผ๋กœ ์ง€์ผœ์•ผ ํ•  ์˜๋ฌด๊ฐ€ ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.๊ฒฐ๋ก ์€ ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์—์„œ SOP์™€ CORS์— ๋Œ€ํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ž„. ๊ผญ ๋ฐฐ์›Œ์•ผ ํ•จ. SOP ( Same-Origin Policy )Same Origin Policy๋Š” "๋™์ผ ์ถœ์ฒ˜ ์ •์ฑ…" ์ด๋ผ๋Š” ์˜๋ฏธ๋กœ ํ•ด์„์ด ๋จ.๋จผ์ € SOP๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Same-Origin Policy์—์„œ Origin์„ ์ดํ•ดํ•ด์•ผ ํ•œ๋‹ค. Originconsole.log(location.origin) ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•˜๊ฒŒ ๋˜๋ฉด ํ˜„์žฌ ์‚ฌ์ดํŠธ์˜ Origin..
[HTTP] ์›น ํƒ„์ƒ ๋ฐฐ๊ฒฝ
ยท
๐ŸŒ Network/๐Ÿ“œHTTP
์›น ํƒ„์ƒ ๋ฐฐ๊ฒฝHTTP(HyperText Transfer Protocol)๋Š” "Tim Berners-Lee" ๋ผ๋Š” ์ธ๋ฌผ์ด ๋งŒ๋“ค์—ˆ๋‹ค.ํŒ€ ๋ฒ„๋„ˆ์Šค ๋ฆฌ๋Š” CERN(์œ ๋Ÿฝ์ž…์ž๋ฌผ๋ฆฌ์—ฐ๊ตฌ์†Œ)์—์„œ ์ผ์„ ํ•˜๋ฉด์„œ, ๋‹น์‹œ ๋„ˆ๋ฌด ๋งŽ์€ ๊ณผํ•™์ž๋“ค์ด ๋ชจ์—ฌ์žˆ๋˜ ์—ฐ๊ตฌ์†Œ์—๋Š” ์—„์ฒญ๋‚œ ์–‘์˜ ๋…ผ๋ฌธ๊ณผ ์ง€์‹์ด ์Œ“์—ฌ์žˆ์—ˆ๊ณ  ์‚ฌ๋žŒ๋“ค์€ ์›ํ•˜๋Š” ์ •๋ณด๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹น์‹œ์— ๋…ผ๋ฌธ์„ ์ฑ…์œผ๋กœ ์ฐพ์•„๋ณด๊ฑฐ๋‚˜ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์—„์ฒญ๋‚œ ์‹œ๊ฐ„์ด ๋“ค์—ฌ์„œ ์ •๋ณด๋ฅผ ์ฐพ๋Š” ๊ณผ์ •์ด ํ•„์š”ํ–ˆ์—ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ณผ์ •์— ๋Œ€ํ•œ ๋ถˆํŽธํ•จ ๋•Œ๋ฌธ์— ํŒ€ ๋ฒ„๋„ˆ์Šค ๋ฆฌ๋Š” ์ปดํ“จํ„ฐ๋ฅผ ํ™œ์šฉํ•ด ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฐœ๋ฐœํ•˜๊ฒŒ ๋˜์—ˆ๊ณ  ํ•ด๋‹น ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์›น์˜ ์‹œ์ž‘์ด ๋˜์—ˆ๋‹ค. 1989๋…„ํŒ€ ๋ฒ„๋„ˆ์Šค ๋ฆฌ๋Š” CERN(์œ ๋Ÿฝ์ž…์ž๋ฌผ๋ฆฌ์—ฐ๊ตฌ์†Œ)์—์„œ ์ผ์„ ํ•˜๋ฉด์„œ, ์ •๋ณด ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ด๋ผ๋Š” ์•„์ด๋””์–ด๋ฅผ ์ œ์‹œํ•˜๊ฒŒ ๋˜์—ˆ๊ณ  ํ•ด๋‹น ์•„์ด๋””์–ด๋Š” ๋ฌธ์„œ๋“ค์ด ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์ •๋ณด๋ฅผ ..
[HTTP] HTTP๋ž€?
ยท
๐ŸŒ Network/๐Ÿ“œHTTP
HTTPHTTP๋Š” HyperText Transfer Protocol์˜ ์•ฝ์ž์ด๋‹ค. HyperText- HyperText ํ•˜์ดํผ๋งํฌ์™€ ๊ฐ™์€ ์ฐธ์กฐ๋ฅผ ๊ฑธ์–ด ๋‹ค๋ฅธ ๋ฌธ์„œ๋กœ ์ด๋™์„ ํ•˜๊ฒŒ ๋„์™€์ฃผ๋Š” ํ…์ŠคํŠธ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.Transfer- "์˜ฎ๊ธฐ๋‹ค" ๋ผ๋Š” ๋œป์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ.Protocol- "๊ทœ์•ฝ" ์ด๋ผ๋Š” ๋œป์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ. ์ฆ‰, HyperText๋ฅผ ์˜ฎ๊ธฐ๊ฒŒ ๋„์™€์ฃผ๋Š” ๊ทœ์•ฝ์„ ์˜๋ฏธํ•œ๋‹ค.์‰ฝ๊ฒŒ ๋งํ•ด, ์›น์—์„œ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ„์˜ HyperText ๊ธฐ๋Šฅ์ด ๋“ค์–ด๊ฐ€์žˆ๋Š” ๋ฌธ์„œ๋“ค์„ ์š”์ฒญ๊ณผ ์‘๋‹ต์„ ํ†ตํ•ด ์ œ๊ณต์„ ํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•์„ ๊ทœ์•ฝ์„ ํ•ด๋†“๊ณ  ํ•ด๋‹น ๊ทœ์•ฝ ํ‹€์•ˆ์—์„œ ์ œ๊ณต์„ ํ•ด์ฃผ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. Protocol(๊ทœ์•ฝ)์˜ ์กด์žฌ ์ด์œ HTTP์™€ ๊ฐ™์ด ํ†ต์‹  ํ”„๋กœํ† ์ฝœ์ด ์—†๋‹ค๋ฉด, ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ„ ๋„ˆ๋ฌด ๋‹ค์–‘ํ•œ ํ†ต์‹  ๋ฐฉ๋ฒ•์ด ๋งŒ๋“ค์–ด์งˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•˜๋‚˜์˜ ๋ฐฉ๋ฒ•์œผ..
[HTTP] WebSocket
ยท
๐ŸŒ Network/๐Ÿ“œHTTP
WebSocketIETF(๊ตญ์ œ ์ธํ„ฐ๋„ท ํ‘œ์ค€ํ™” ๊ธฐ๊ตฌ)- HTTP ํ”„๋กœํ† ์ฝœ์˜ ์ตœ์‹ ํ™” ๋ฐ ์—…๋ฐ์ดํŠธ ์ž‘์—…์€ IETF(Internet Engineering Task Force)**๊ฐ€ ์ฃผ๋„ํ•˜๊ณ  ์žˆ๋‹ค.- IETF ์‚ฐํ•˜ HTTP Working Group์€ HTTP์˜ ๊ฐœ์„ ๊ณผ ํ‘œ์ค€ํ™”๋ฅผ ๋‹ด๋‹นํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ์ƒˆ๋กœ์šด ๋ฒ„์ „๊ณผ ๊ด€๋ จ ๊ธฐ์ˆ ๋“ค์ด ์ •์˜๋˜๊ณ  ๋ฐฐํฌ๋˜๋ฉฐ, ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ์ด๋Ÿฌํ•œ HTTP ํ‘œ์ค€์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜๋ฉฐ, ์ƒˆ๋กœ์šด ํ‘œ์ค€์— ๋งž์ถฐ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋˜๊ฒŒ ๋œ๋‹ค. ์ด๋Ÿฌํ•œ, IETF์—์„œ ์‹ค์‹œ๊ฐ„ ํ†ต์‹ ์˜ ํ•„์š”์„ฑ์„ ๋Š๊ปด WebSocket ํ”„๋กœํ† ์ฝœ์„ ๋งŒ๋“ค์—ˆ๊ณ , HTTP ํ”„๋กœํ† ์ฝœ ๊ธฐ๋ฐ˜์œผ๋กœ ์—ฐ๊ฒฐ์„ ์„ค์ • ํ•˜๊ณ , ์ดํ›„์— WebSocket ํ”„๋กœํ† ์ฝœ๋กœ ์ „ํ™˜๋˜์–ด ์‹ค์‹œ๊ฐ„ ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์ค€๋‹ค. HTTP -> WebSocket ์ „ํ™˜ ๊ณผ์ •1. HTTP..
(HTTP) Stateless, Stateful
ยท
๐ŸŒ Network/๐Ÿ“œHTTP
HTTP์˜ ์ค‘์š”ํ•œ ํŠน์ง• ์ค‘ ํ•˜๋‚˜๋กœ๋Š” Stateless(๋ฌด์ƒํƒœ) ํ”„๋กœํ† ์ฝœ์„ ์ง€ํ–ฅํ•œ๋‹ค๋Š” ์ ์ด๋‹ค.์ด Stateless๋ฅผ ์•Œ๊ธฐ ์ „์— ๋ฐ˜๋Œ€๋˜๋Š” Stateful(์ƒํƒœ์œ ์ง€)๋ฅผ ์•Œ์•„์•ผ ํ•œ๋‹ค.Stateful : ์ƒํƒœ์œ ์ง€ ํ”„๋กœํ† ์ฝœ ๋ฐฉ์‹Stateful์€ ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ๋ฅผ ๋ณด์กดํ•ด์ฃผ๋Š” ํ”„๋กœํ† ์ฝœ ๋ฐฉ์‹์ด๋‹ค.Stateful(์ƒํƒœ์œ ์ง€) ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” ์—ฐ๊ฒฐ์ด ์œ ์ง€๊ฐ€ ๋œ๋‹ค. ์˜ˆ์‹œ๋กœ ๋“ค๋ฉด์›น์‚ฌ์ดํŠธ์˜ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ๊ฐ™์€ ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ–ˆ์„ ๊ฒฝ์šฐ์—๋„ ๋กœ๊ทธ์ธ์ด ์œ ์ง€๊ฐ€๋œ๋‹ค.์ด๊ฑด ๊ณ„์† ์—ฐ๊ฒฐ์ด ๋˜์–ด์žˆ๋Š” ๊ฒฝ์šฐ์ด๋‹ค. ์ฆ‰, ์ƒํƒœ์œ ์ง€๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ์ƒํƒœ์œ ์ง€๊ฐ€ ๋˜์•ผ์ง€๋ฌผ๊ฑด์„ ๊ตฌ๋งคํ–ˆ์„ ๋•Œ ํ•ด๋‹น ๋กœ๊ทธ์ธ๋œ ์ •๋ณด๋ฅผ ํ† ๋Œ€๋กœ ๊ฒฐ์ œ๋ฅผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.์ฆ‰ ์„œ๋ฒ„์—์„œ ํšŒ์›์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ง€์†์ ์ธ ์—ฐ๊ฒฐ์ด ๋˜์–ด์žˆ๋Š” ์ƒํƒœ์ด๋‹ค.Stateless : ..
HTTP
ยท
๐ŸŒ Network/๐Ÿ“œHTTP
๋ชจ๋“  ๊ฒƒ์€ HTTP ๊ธฐ๋ฐ˜ ์œ„์—์„œ ๋™์ž‘ํ•œ๋‹ค.html ์ด๋ฏธ์ง€ ์˜์ƒ ํŒŒ์ผ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์•ฑ๊ณผ ์„œ๋ฒ„๊ฐ€ ํ†ต์‹ ํ• ๋•Œ์™€ ์„œ๋ฒ„์™€ ์„œ๋ฒ„๋ผ๋ฆฌ ํ†ต์‹ ํ• ๋•Œ๋„ HTTPํ”„๋กœํ† ์ฝœ ์œ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š”๋‹ค.ํŠนํžˆ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋Š” SpringMVC๋‚˜ JSP PHP, ํŒŒ์ด์ฌ ์žฅ๊ณ  ๋ฃจ๋น„์˜จ๋ ˆ์ผ์ฆˆ๊ฐ™์€ ์›น ๊ธฐ์ˆ ์ด๋‚˜ ์›นํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋จ ์ด๋Ÿฐ ์›น ๊ธฐ์ˆ ๋“ค์ด ๋ชจ๋‘ HTTP ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„๋˜์–ด์žˆ์Œ. ์ธํ„ฐ๋„ท ๋„คํŠธ์›Œํฌ1. ์ธํ„ฐ๋„ท ํ†ต์‹ ์ปดํ“จํ„ฐ ๋‘˜์ด ๋ถ™์–ด์žˆ์œผ๋ฉด ๋‹จ์ˆœํžˆ ์ผ€์ด๋ธ”์„ ์—ฐ๊ฒฐํ•ด์„œ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค ํ•˜์ง€๋งŒ ํ˜„๋Œ€์—๋Š” ์ปดํ“จํ„ฐ๊ฐ„์˜ ๊ฑฐ๋ฆฌ๊ฐ€ ๋ฉ€๋ฆฌ๋–จ์–ด์ ธ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ†ต์‹ ์˜ ์–ด๋ ค์›€์ด ์กด์žฌํ•œ๋‹ค. ์ด๊ฒƒ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜์˜จ๊ฒƒ์ด ์ธํ„ฐ๋„ท ํ†ต์‹  ์ด๋‹ค. ๋ฉ€๋ฆฌ์žˆ๋Š” ์ปดํ“จํ„ฐ์™€์˜ํ†ต์‹ ์€ ํ•ด์ €์ผ€์ด๋ธ”์ด ๋ ์ˆ˜๋„์žˆ๊ณ  ์ธ๊ณต์œ„์„ฑ์„ ํ†ตํ•ด ๋‚ด๋ ค์˜ฌ ์ˆ˜๋„ ์žˆ๋‹ค. ์ˆ˜๋งŽ์€ ์ค‘๊ฐ„ ๋…ธ๋“œ๋ผ๋Š” ์„œ๋ฒ„๋ฅผ ๊ฑฐ์ณ์„œ ๋ฉ”์‹œ์ง€๊ฐ€์•ˆ..