CORS - g-market/b-shop-backend GitHub Wiki

์ถœ์ฒ˜(Origin)๋ž€?

Protocol + host ๊ฐ€ ๊ฐ™์„ ๋•Œ ๊ฐ™์€ ์ถœ์ฒ˜์ž…๋‹ˆ๋‹ค.


SOP

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

http://b-shop.com (o)
http://b-shop.com/me (o)
https://b-shop.com(x) : ํ”„๋กœํ† ์ฝœ์ด ๋‹ค๋ฅด๋‹ค.(PORT๋„ ๋‹ค๋ฅด๋‹ค.)
http://b-shop.com:80(o)
http://gabia.b-shop.com:80(x) : host๊ฐ€ ๋‹ค๋ฅด๋‹ค.
http://b-shop.com:8080(o) : port ๊ฐ€ ๋‹ฌ๋ผ๋„ ๊ฐ™์€ ์ถœ์ฒ˜์ž…๋‹ˆ๋‹ค.

Preflight Request

OPTIONS ๋ฉ”์†Œ๋“œ๋กœ ์˜ˆ๋น„ ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ๋ณธ ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค.

Origin์— ๋Œ€ํ•œ ์ •๋ณด ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ž์‹ ์ด ์˜ˆ๋น„ ์š”์ฒญ ์ดํ›„ ๋ณด๋‚ผ ๋ณธ ์š”์ฒญ์— ๋Œ€ํ•œ ๋‹ค๋ฅธ ์ •๋ณด๋“ค๋„ ๊ฐ™์ด ํฌํ•จ๋˜์–ด ์žˆ๋‹ค.
(์˜ˆ๋ฅผ ๋“ค์–ด Access-Control-Request-Headers, Access-Control-Request-Method ๋“ฑ)

์š”์ฒญ์˜ Origin๊ณผ ์‘๋‹ต์˜ Access-Control-Allow-Origin๋ฅผ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋น„๊ตํ•ด ์ถœ์ฒ˜๋ฅผ ํŒ๋‹จํ•˜์—ฌ ๋‹ค๋ฅด๋ฉด ์—๋Ÿฌ๋ฅผ ๋ฐœ์ƒํ•˜์‹œํ‚ค๊ณ  ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์ถœ์ฒ˜๋ผ๋ฉด ๋ณธ ์š”์ฒญ์„ ๋ณด๋‚ด ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

์„œ๋ฒ„ ์‚ฌ์ด๋“œ ์˜์—ญ์ด ์•„๋‹Œ ๋ธŒ๋ผ์šฐ์ € ์˜์—ญ์ด๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„๋Š” 200๋Œ€์˜ ์„ฑ๊ณต ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.


Simple Request

์˜ˆ๋น„ ์š”์ฒญ์ด ์—†๊ณ  ๋ณธ ์š”์ฒญ์—์„œ ์˜ˆ๋น„ ์š”์ฒญ์—์„œ ํ–ˆ๋˜ ๋น„๊ต๋ฅผ ํ•œ๋‹ค.

์ก”์•ฝ ์‚ฌํ•ญ

์š”์ฒญ์˜ ๋ฉ”์„œ๋“œ๋Š” GET, HEAD, POST ์ค‘ ํ•˜๋‚˜์—ฌ์•ผ ํ•œ๋‹ค.

Accept, Accept-Language, Content-Language, Content-Type, DPR, DownLink, Save-Data, Viewport-width, Width ๋ฅผ ์ œ์™ธํ•œ ํ—ค๋”๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋œ๋‹ค.

๋งŒ์•ฝ Content-Type๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” application/x-www-form-urlencoded, multipart/form-data, text/plain ๋งŒ ํ—ˆ์šฉ๋œ๋‹ค.

application/json์€ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.


Credentialed Request

Same-origin(๊ธฐ๋ณธ ๊ฐ’)

โš ๏ธ **GitHub.com Fallback** โš ๏ธ