SOP VS CORS

SOP (Same-Origin Policy, ๋™์ผ ์ถœ์ฒ˜ ์ •์ฑ…)

ํ•˜๋‚˜์˜ ์ถœ์ฒ˜(Origin)์—์„œ ๋กœ๋“œ๋œ ์ž์›์ด ๋‹ค๋ฅธ ํ˜ธ์ŠคํŠธ๋‚˜ ํ”„๋กœํ† ์ฝœ, ํฌํŠธ๋ฒˆํ˜ธ์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜์ง€ ๋ชปํ•˜๋„๋ก ์š”์ฒญ ๋ฐœ์ƒ์„ ์ œํ•œํ•˜๋ฉฐ ๋™์ผ ์ถœ์ฒ˜(Same Origin)์—์„œ๋งŒ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•œ ์ •์ฑ…

CORS (Cross-Origin Resource Sharing, ๊ต์ฐจ ์ถœ์ฒ˜ ๋ฆฌ์†Œ์Šค ๊ณต์œ )

์ž์‹ ์˜ ์ถœ์ฒ˜์™€ ๋‹ค๋ฅธ ์ถœ์ฒ˜์—์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋ ค๋ฉด ์˜ฌ๋ฐ”๋ฅธ CORS ํ—ค๋”๋ฅผ ํฌํ•จํ•œ ์‘๋‹ต์„ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•œ๋‹ค.

CORS ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

  1. ๋™์ผ ์ถœ์ฒ˜ ์‚ฌ์šฉ
  2. ์„œ๋ฒ„์—์„œ Access-Control-Allow-Origin ํ—ค๋” ์ถ”๊ฐ€

์„œ๋ฒ„์—์„œ ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์„ ํ—ˆ๊ฐ€ํ•˜๋Š” Access-Control-Allow-Origin: * ํ—ค๋”๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋œ๋‹ค. ์ด๋ ‡๊ฒŒ ์„ค์ •ํ•  ๊ฒฝ์šฐ ์ „์ฒด ํ˜ธ์ŠคํŠธ์— ๋Œ€ํ•œ ์š”์ฒญ์„ ํ—ˆ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์•ˆ์— ์ทจ์•ฝํ•  ์ˆ˜ ์žˆ๋‹ค. 3. Proxy
Proxy ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์ค‘๊ฐ„์— ์œ„์น˜ํ•˜๋ฉฐ ํ”„๋ก์‹œ ์„œ๋ฒ„์—์„œ Access-Control-Allow-Origin: * ํ—ค๋”๋ฅผ ๋‹ด์•„ ์‘๋‹ตํ•ด ์ฃผ๋ฉด ๋œ๋‹ค.

OSI-Layer

๋ฌผ๋ฆฌ ๊ณ„์ธต (Physical Layer)

  • 0๊ณผ 1์˜ ๋‚˜์—ด์„ ์•„๋‚ ๋กœ๊ทธ ์‹ ํ˜ธ๋กœ ๋ฐ”๊พธ์–ด ์ „์„ ์œผ๋กœ ํ˜๋ ค ๋ณด๋‚ด๊ณ , (encoding)
  • ์•„๋‚ ๋กœ๊ทธ ์‹ ํ˜ธ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด 0๊ณผ 1์˜ ๋‚˜์—ด๋กœ ํ•ด์„ํ•˜์—ฌ (decoding)
  • ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ๋‘ ๋Œ€์˜ ์ปดํ“จํ„ฐ๊ฐ€ 0๊ณผ 1์˜ ๋‚˜์—ด์„ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๋ชจ๋“ˆ (module)

์–ด๋””์— ๊ตฌํ˜„๋˜์–ด ์žˆ์„๊นŒ?

  • PHY ์นฉ
  • ์‚ฌ์‹ค 1๊ณ„์ธต ๋ชจ๋“ˆ์€ ํ•˜๋“œ์›จ์–ด์ ์œผ๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ๋‹ค.
  • ๊ฐ™์€ ๋„คํŠธ์›Œํฌ์— ์žˆ๋Š” ์—ฌ๋Ÿฌ ๋Œ€์˜ ์ปดํ“จํ„ฐ๋“ค์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•ด์„œ ํ•„์š”ํ•œ ๋ชจ๋“ˆ
  • Framing์€ Data-link Layer์— ์†ํ•˜๋Š” ์ž‘์—…๋“ค ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

์–ด๋””์— ๊ตฌํ˜„๋˜์–ด ์žˆ์„๊นŒ?

  • ๋žœ์นด๋“œ
  • ํ•˜๋“œ์›จ์–ด

๋„คํŠธ์›Œํฌ ๊ณ„์ธต (Network Layer)

  • ์ˆ˜๋งŽ์€ ๋„คํŠธ์›Œํฌ๋“ค์˜ ์—ฐ๊ฒฐ๋กœ ์ด๋ฃจ์–ด์ง€๋Š” inter-network ์†์—์„œ
  • ์–ด๋”˜๊ฐ€์— ์žˆ๋Š” ๋ชฉ์ ์ง€ ์ปดํ“จํ„ฐ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ธฐ ์œ„ํ•ด,
  • IP ์ฃผ์†Œ๋ฅผ ์ด์šฉํ•ด์„œ ๊ธธ์„ ์ฐพ๊ณ  (routing)
  • ์ž์‹  ๋‹ค์Œ์˜ ๋ผ์šฐํ„ฐ์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋„˜๊ฒจ์ฃผ๋Š” ๊ฒƒ (forwarding)

์–ด๋””์— ๊ตฌํ˜„๋˜์–ด ์žˆ์„๊นŒ?

  • ์šด์˜์ฒด์ œ์˜ ์ปค๋„์— ์†Œํ”„ํŠธ์›จ์–ด์ ์œผ๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ๋‹ค.

์ „์†ก ๊ณ„์ธต (Transfer Layer)

  • Port ๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ
  • ๋„์ฐฉ์ง€ ์ปดํ“จํ„ฐ์˜ ์ตœ์ข… ๋„์ฐฉ์ง€์ธ ํ”„๋กœ์„ธ์Šค์—๊นŒ์ง€
  • ๋ฐ์ดํ„ฐ๊ฐ€ ๋„๋‹ฌํ•˜๊ฒŒ ํ•˜๋Š” ๋ชจ๋“ˆ

์–ด๋””์— ๊ตฌํ˜„๋˜์–ด ์žˆ์„๊นŒ?

  • ์šด์˜์ฒด์ œ์˜ ์ปค๋„์— ์†Œํ”„ํŠธ์›จ์–ด์ ์œผ๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ๋‹ค.

์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต (Application Layer)

  • HTTP