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 ์š”์ฒญ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • axios ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

Last updated