CORS
๊ฐ์.
์ค๋ฌด๋ฅผ ํ๋ฉด์ CORS ๋ฌธ์ ์ ๋ด์ฐฉํ๊ฒ ๋์๋ค. 1๋ ์ ์ ์์ฑํ ๊ธ์ด์ง๋ง ๋ค์๊ธ ์ ๋ฆฌ๊ฐ ํ์ํ๋ฉฐ, ๊ธฐ์ตํ๊ธฐ ์ํจ์ด๋ค.
์ ํ ์ค๋ช .
XMLHttpRequest( ์ดํ XHR ) ๊ฐ์ฒด๋ ์๋ฒ์ ์ํธ์์ฉํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค. ์ด๋ ์ ์ฒด ํ์ด์ง์ ๋ํ ๋ฆฌ๋ก๋ ์์ด ์์ฒญ URL ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ฌ ์ ์๋๋ฐ, ํํ ์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋ ๋น๋๊ธฐ ajax ๋ฐฉ์์์ ์ฃผ๋ก ์ฐ์ธ๋ค.
XHR ์ same-origin ์ ์ฑ ์ ๋ฐ๋ฅด๋๋ฐ XHR ์ ํญ์ ์์ ๊ณผ ๋์ผํ ๋๋ฉ์ธ์ผ๋ก HTTP ์์ฒญ์ ๋ณด๋ด๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.
์ฌ๊ธฐ์ same-origin ์ ์ฑ ์ด๋, another origin ์ผ๋ก๋ถํฐ ๋ฌธ์ ๋๋ ์คํฌ๋ฆฝํธ ๋ฌธ๊ณผ ์ํธ์์ฉ ํ๋ ๊ฒ์ ์ ํํ๋ ๋ณด์ ๋ฐฉ์์ด๋ค.
๋ฐ๋ผ์ same-origin ์ ์ธ ๊ฐ์ ๋ด์ฉ์ ํ๋จํด์ ๋์ผํ origin ์ธ์ง ์๋ณํ๋ค.
protocol
port
host
- ์์ ๊ฐ์ SOP (same-origin-policy) ๋ ๊ณผ๊ฑฐ์๋ ๊ด์ฐฎ์์ง๋ง ์์ฆ ๊ฐ์ด api ํธ์ถ์ด ์ฆ์์ง๊ณ ์ธ๋ถ ๋๋ฉ์ธ ์๋ฒ์์ ์ฐ๊ฒฐ ๋ฐ ์๋ํํฐ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ง์ด ์๊ฒจ๋๊ฐ๋ฉด์ ์ด๋ฅผ ๊ทน๋ณตํ ํ์์ฑ์ ์์๊ณ ์ด์ ๋ฐ๋ผ ๋์จ ๊ฒ์ด CORS (Cross-Origin-Resource-Sharing) ์ด๋ค.
- ํด๋ผ์ด์ธํธ๋ CORS ๋ฅผ ์ํด์ ์๋ก์ด HTTP ํค๋๋ฅผ ์ถ๊ฐํ๋ค.
- ์๋ฒ๋ ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ ํค๋๋ฅผ ํ์ธํด์ ๋ฐ์ดํฐ ์์ฒญ ์ฌ๋ถ๋ฅผ ํ๋จํ๋ค.
- Access-Control-Request-Method
- ์ค์ ์์ฒญ ๋ ์ฌ์ฉํ ๋ฉ์๋
- Access-Control-Request-Headers
- ๋ธ๋ผ์ฐ์ ๊ฐ ์ค์ ์์ฒญ์ ๋ณด๋ผ ๋ ํค๋์ ์ถ๊ฐํ ์ปค์คํ ์์ฑ
- Access-Control-Allow-Origin : ํ์ฉํ๋ Origin
- Access-Control-Request-Methods : ํ์ฉํ๋ ์์ฒญ ๋ฉ์๋
- Access-Control-Allow-Headers : ํ์ฉํ๋ ํค๋ ์์ฑ
- Access-Control-Max-Age : prefilight request ์บ์ํ๋ ์๊ฐ (์ด๋จ์)
- Access-Control-Allow-Credentials : true (์ฌ์ฉํ๊ธฐ ์ํด์ ์๋ฒ Response ํค๋์ ํฌํจ)
[ ์ฐธ๊ณ ๋งํฌ ]
https://juicyjusung.github.io/2019/08/21/http/cors/
https://homoefficio.github.io/2015/07/21/Cross-Origin-Resource-Sharing/
'javascript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
20180605 node.js & npm ๊ฐ๋ ์ ๋ฆฝ ๋ฐ ์ค์น (0) | 2018.06.05 |
---|---|
20180407 ์๋ฐ์คํฌ๋ฆฝํธ ์กฐ๊ฑด ๋ฐ ์ ์ด๋ฌธ (0) | 2018.04.07 |
20180407 ์๋ฐ์คํฌ๋ฆฝํธ ์ฐ์ฐ ๋ฐ ํจ์ (0) | 2018.04.07 |
20180407 ์๋ฐ์คํฌ๋ฆฝํธ ๋ณ์ ๋ฐ ๊ฐ์ฒด ์์๋ณด๊ธฐ. (0) | 2018.04.07 |
20180330 form ํ๊ทธ๋ฅผ ํตํ ajax ๋ฐฉ์ (0) | 2018.03.30 |