Cors.md
Last updated
Last updated
์น์ ๊ฐ๋ฐํ๋ค๋ฉด ํ ๋ฒ์ฏค์ ๋ค์ด๋ณด์์ CORS์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค.
CORS: Cross Origin Resource Sharing ๋ค๋ฅธ ์ถ์ฒ๋ก ๋ฆฌ์์ค๊ฐ ์์ฒญ๋ ๊ฒฝ์ฐ ๋ธ๋ผ์ฐ์ ์์ ์๋ต์ ๊ฑฐ๋ถํ๋ ์ ์ฑ
โ ์ถ์ฒ
์๋ฒ์ ์์น๋ฅผ ์๋ฏธํ๋ URL๋ค์ ์ฌ๋ฌ๊ฐ์ ๊ตฌ์ฑ ์์(protocol, host, path, query string, fragment)๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
์ฆ, ์๋ฒ๊ฐ ์ ๊ทผ์ ํ์ฉํ ์ถ์ฒ(๊ฐ์ ์ถ์ฒ)๊ฐ ์๋ ์ ๊ทผ์ ํ์ฉํ์ง ์์ ์ถ์ฒ(๋ค๋ฅธ ์ถ์ฒ)์์ ์์ฒญํ ๊ฒฝ์ฐ ๋ธ๋ผ์ฐ์ ์์ ๋ณด์์์ ์ด์ ๋ก ์๋ต์ ๊ฑฐ๋ถํ๋ ์ ์ฑ
๊ธฐ๋ณธ์ ์ผ๋ก ์น ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ๋ฆฌ์์ค๋ฅผ ์์ฒญํ ๋๋ HTTPํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ์์ฒญ์ ๋ณด๋ด๋๋ฐ, ์ด๋ Header
์ Origin
์ด๋ผ๋ ํ๋์ ์ถ์ฒ๋ฅผ ํจ๊ป ๋ด์๋ณด๋ด๊ฒ ๋๋ค.
์ดํ ์๋ฒ๊ฐ ์ด ์์ฒญ์ ๋ํ ์๋ต์ ํ ๋ Header
์ Access-Control-Allow-Origin
์ด๋ผ๋ ๊ฐ์ ๋ด๋ ค์ฃผ๊ณ , ์ดํ Response
๋ฅผ ๋ฐ์ ๋ธ๋ผ์ฐ์ ๋ ์์ฒญ์ Origin
๊ณผ Response
์ Access-Control-Allow-Origin
์ ๋น๊ตํด๋ณธ ํ ์ ํจํ ์๋ต์ธ์ง ๊ฒฐ์ ํ๋ค.
3๊ฐ์ง์ ํด๊ฒฐ๋ฐฉ๋ฒ์ด ์๋๋ฐ ์ด ์ค ์ฐ๋ฆฌ๋ ์๋ฒ์์ Access-Controll-Allow-Origin ํค๋์ ์๋ง์ ๊ฐ์ ์ธํ ํด์ฃผ๋ ๋ฒ์ ์์๋ณผ๊ฒ์ด๋ค.
์ด๋, ์์ผ๋์นด๋์ธ *
๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ ์ถ์ฒ๋ฅผ ๋ฐ์๋ค์ธ๋ค๋ฉด ํธํ๊ฒ ์ง๋ง, ๋ณด์์์ผ๋ก ๋ณด์์ ๋ ๋งค์ฐ ์ฌ๊ฐํ ์ด์๊ฐ ๋ฐ์ํ ์ ์์ผ๋ฏ๋ก ๊ฐ๊ธ์ ์ด๋ฉด ์ถ์ฒ๋ฅผ ๋ช
์ํด์ฃผ๋๋ก ํ์
express, Django, Spring์ ๊ฐ์ด ์ ๋ช ํ ๋ฐฑ์๋ ํ๋ ์์ํฌ์์๋ CORS ์ธํ ์ด๋ middleware๋ฅผ ์ ๊ณตํ๊ณ ์์ผ๋ ์์ฝ๊ฒ ์ค์ ์ด ๊ฐ๋ฅํ๋ค.
express์์ cors ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ธํ ์์