CORS
CORS (Cross-Origin Resource Sharing, ๊ต์ฐจ ์ถ์ฒ ์์ ๊ณต์ )
์ ์
๊ต์ฐจ ์ถ์ฒ(Cross Origin) ๊ฐ ๋ฆฌ์์ค ๊ณต์ (Resource Sharing)์ ์ฝ์
์๋ก ๋ค๋ฅธ Origin์ ๊ฐ๋ ์ ํ๋ฆฌ์ผ์ด์
๊ฐ์ ๋ฆฌ์์ค๋ฅผ ๊ณต์ ํ๊ณ ์ ํ ๋ ์ค์ํด์ผ ํ ๊ท์ฝ๋ค์ CORS Policy
๋ผ๊ณ ํจ
ํด๋ผ์ด์ธํธ (๋ฆฌ์์ค ์์ฒญ์)
ํ๋ฆฌํ๋ผ์ดํธ ์์ฒญ (OPTIONS) ์ผ๋ก ์ง์ํ๋ ๋ฉ์๋, ํค๋ ์ ๋ณด ํ์ธ
Simple Request ์ธ ๊ฒฝ์ฐ์๋ ์๋ต๋จ
์๋๋ ์ด OPTIONS ์์ฒญ์์ ์ฌ์ฉ๋๋ ํค๋๋ค
Access-Control-Request-Method
์ฌ์ฉ ๊ฐ๋ฅํ ๋ฉ์๋์ธ์ง๋ฅผ ์๋ต๋ฐ๊ธฐ ์ํ ํค๋
Access-Control-Request-Headers
์ฌ์ฉ ๊ฐ๋ฅํ ํค๋์ธ์ง๋ฅผ ์๋ต๋ฐ๊ธฐ ์ํ ํค๋
ํ๋ฆฌํ๋ผ์ดํธ ์์ฒญ์ ๊ธฐ๋ฐ์ผ๋ก ์ค์ ์์ฒญ ์ ๋ฌ
์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌํํ ๋์๋ ์ค์ ์์ฒญ๋ง์ ์์ฑํ๋ฉฐ,
Fetch
๋ฑ์ ์์ฒญ ๋ฉ์๋๊ฐ ํ๋ฆฌํ๋ผ์ดํธ๋ฅผ ์๋์ผ๋ก ํธ๋ฆฌ๊ฑฐ
์๋ฒ (๋ฆฌ์์ค ์ ๊ณต์)
ํ๋ฆฌํ๋ผ์ดํธ(OPTION) ์์ฒญ์ ๋ํด์๋ ๋ค์์ ํค๋๋ฅผ ํตํด ์ง์ํ๋ ๋ฉ์๋, ํค๋ ์ ๋ณด ์ ๊ณต
Allows
๋๋Access-Control-Allow-Methods
Allow-Headers
๋๋Access-Control-Allow-Headers
ํ์ฉ๋ ํด๋ผ์ด์ธํธ์ธ์ง ๊ฒ์ฆ
ํ์ฉ๋ ํค๋๋ผ๋ฉด
Access-Control-Allow-Origin
ํค๋๋ฅผ ํฌํจํ ์๋ต ์ ๊ณตํ๋ฆฌํ๋ผ์ดํธ, ์ค์ ์์ฒญ ๋ชจ๋ ์ด ๊ณผ์ (ํค๋)์ด ์๊ตฌ๋จ
์๋ฒ-ํด๋ผ์ด์ธํธ ์์ฒญ ํ๋ฆ
ํด๋ผ์ด์ธํธ โ ํ๋ฆฌํ๋ผ์ดํธ ์์ฒญ
Simple Request ์ธ ๊ฒฝ์ฐ์๋ ์๋ต๋จ (์ค์ํ๋ฏ๋ก ํ ๋ฒ ๋ ๊ฐ์กฐ)
์๋ฒ โ ํ๋ฆฌํ๋ผ์ดํธ ์์ฒญ์ ๋ํ ์๋ต (์ฌ์ฉ ๊ฐ๋ฅ ๋ฉ์๋, ํค๋ ์ ๋ณด ํฌํจ)
ํด๋ผ์ด์ธํธ โ ์๋ฒ์ ์๋ต ๊ธฐ๋ฐ์ผ๋ก ์ค์ ์์ฒญ ๋ฉ์์ง ์์ฑ
์๋ฒ โ ์ค์ ์์ฒญ์ ๋ํ ์๋ต
์ธ์ฆ ์์ฒญ์ธ ๊ฒฝ์ฐ
ํด๋ผ์ด์ธํธ โ
withCredentials: true
์ด๊ฑธ ํฌํจํด์ผ ํค๋์ ์ฟ ํค ์ ๋ณด๋ฅผ ๋ฃ์
์๋ฒ โ
Access-Control-Allow-Credentials: true
๋ธ๋ผ์ฐ์ ๋ ์ธ์ฆ ์์ฒญ์ ๋ํ ์๋ต ํค๋์ ์ด๊ฒ ์์ผ๋ฉด ํ๊ธฐ
์๋ฒ์์ ์ด ํค๋๋ฅผ ํฌํจํ๊ณ ์ ํ๋ฉด
Allow-Origin
์ ์์ผ๋์นด๋๋ก ์ค์ ๋ถ๊ฐ
์ฃผ์์ฌํญ
CORS๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฌด์กฐ๊ฑด ์์ฒญ์
origin ์ ๋ณด
๊ฐ ์์ด์ผ ํ์ฉํด์ค ์ ์์๋ฆฌ์์ค๋ฅผ ์์ฒญํ ์ค๋ฆฌ์ง์ด ํ์ฉ๋ ์ค๋ฆฌ์ง์ธ์ง ์๋์ง ํ๋ณํด์ผ ํ๋ฏ๋ก ๋น์ฐํจ
์ถ์ฒ
Last updated