HTTP
๋ชจ์ง๋ผ (MDN)
CORS (Cross Origin Resource Sharing)
HTTP ์ ๊ทผ์ ์ด
https://domain-a.com
์ ํ๋ก ํธ ์๋ JavaScript ์ฝ๋๊ฐXMLHttpRequest
๋ฅผ ์ฌ์ฉํ์ฌhttps://domain-b.com/data.json
์ ์์ฒญํ๋ ๊ฒฝ์ฐ.๊ธฐ๋ฅ์ ๊ฐ์
๊ต์ฐจ ์ถ์ฒ ๋ฆฌ์์ค ๊ณต์ ํ์ค์ ์น ๋ธ๋ผ์ฐ์ ์์ ํด๋น ์ ๋ณด๋ฅผ ์ฝ๋ ๊ฒ์ด ํ์ฉ๋ ์ถ์ฒ๋ฅผ ์๋ฒ์์ ์ค๋ช ํ ์ ์๋ ์๋ก์ด HTTP ํค๋๋ฅผ ์ถ๊ฐํจ์ผ๋ก์จ ๋์ํฉ๋๋ค. ์ถ๊ฐ์ ์ผ๋ก, ์๋ฒ ๋ฐ์ดํฐ์ ๋ถ์ ํจ๊ณผ(side effect)๋ฅผ ์ผ์ผํฌ ์ ์๋ HTTP ์์ฒญ ๋ฉ์๋(
GET
์ ์ ์ธํ HTTP ๋ฉ์๋)์ ๋ํด, CORS ๋ช ์ธ๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์์ฒญ์OPTIONS
๋ฉ์๋๋ก "ํ๋ฆฌํ๋ผ์ดํธ"(preflight, ์ฌ์ ์ ๋ฌ)ํ์ฌ ์ง์ํ๋ ๋ฉ์๋๋ฅผ ์์ฒญํ๊ณ , ์๋ฒ์ "ํ๊ฐ"๊ฐ ๋จ์ด์ง๋ฉด ์ค์ ์์ฒญ์ ๋ณด๋ด๋๋ก ์๊ตฌํ๊ณ ์์ต๋๋ค. ๋ํ ์๋ฒ๋ ํด๋ผ์ด์ธํธ์๊ฒ ์์ฒญ์ "์ธ์ฆ์ ๋ณด"(์ฟ ํค, HTTP ์ธ์ฆ)๋ฅผ ํจ๊ป ๋ณด๋ด์ผ ํ๋ค๊ณ ์๋ ค์ค ์๋ ์์ต๋๋ค.CORS ์คํจ๋ ์ค๋ฅ์ ์์ธ์ด์ง๋ง, ๋ณด์์์ ์ด์ ๋ก JavaScript์์๋ ์ค๋ฅ์ ์์ธ ์ ๋ณด์ ์ ๊ทผํ ์ ์์ผ๋ฉฐ, ์ ์ ์๋ ๊ฒ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค๋ ์ฌ์ค ๋ฟ์ ๋๋ค. ์ ํํ ์ด๋ค ๊ฒ์ด ์คํจํ๋์ง ์์๋ด๋ ค๋ฉด ๋ธ๋ผ์ฐ์ ์ ์ฝ์์ ๋ด์ผ ํฉ๋๋ค.
์ด๋ค ์์ฒญ์ด CORS๋ฅผ ์ฌ์ฉํ๋์?
๊ต์ฐจ ์ถ์ฒ ๊ณต์ ํ์ค์ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์ ์ฌ์ดํธ๊ฐ HTTP ์์ฒญ์ ํ์ฉํฉ๋๋ค.
์์์ ๋ ผ์ํ ๋ฐ์ ๊ฐ์ด,
XMLHttpRequest
์ Fetch API ํธ์ถ.์น ํฐํธ(CSS ๋ด
@font-face
์์ ๊ต์ฐจ ๋๋ฉ์ธ ํฐํธ ์ฌ์ฉ ์), so that servers can deploy TrueType fonts that can only be cross-site loaded and used by web sites that are permitted to do so.drawImage()
๋ฅผ ์ฌ์ฉํด ์บ๋ฒ์ค์ ๊ทธ๋ฆฐ ์ด๋ฏธ์ง/๋น๋์ค ํ๋ ์.
axios ๋ผ์ด๋ธ๋ฌ๋ฆฌ
Last updated
Was this helpful?