- ์ถ๊ฐ HTTP ํค๋๋ฅผ ์ฌ์ฉํ์ฌ, ํ ์ถ์ฒ์์ ์คํ ์ค์ธ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ค๋ฅธ ์ถ์ฒ์ ์ ํํ ์์์ ์ ๊ทผํ ์ ์๋ ๊ถํ์ ๋ถ์ฌํ๋๋ก ๋ธ๋ผ์ฐ์ ์๊ฒ ์๋ ค์ฃผ๋ ์ฒด์
- ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฆฌ์์ค๊ฐ ์์ ์ ์ถ์ฒ์ ๋ค๋ฅผ ๋ ๊ต์ฐจ ์ถ์ฒ HTTP ์์ฒญ์ ์คํ
- CORS ์ฒด์ ๋ฅผ ํตํด ์์ ํ ๊ต์ฐจ ์ถ์ฒ ์์ฒญ ๋ฐ ๋ฐ์ดํฐ ์ ์ก ์ง์ - ๋ณด์ ๋ฌธ์ ํด๊ฒฐ
- CORS ์ธ์ ์ฐํํ๋ ๋ฐฉ์: JSONP, Allow CORS ํ๋ฌ๊ทธ์ธ
- ํ ์ถ์ฒ์์ ๋ถ๋ฌ์จ ๋ฌธ์๋ ์คํฌ๋ฆฝํธ๊ฐ ๋ค๋ฅธ ์ถ์ฒ์์ ๊ฐ์ ธ์จ ๋ฆฌ์์ค์ ์ํธ์์ฉํ๋ ๊ฒ์ ์ ํํ๋ ๋ณด์ ๋ฐฉ์
- ์ ์ฌ์ ์ผ๋ก ํด๋ก์ธ ์ ์๋ ๋ฌธ์๋ฅผ ๋ถ๋ฆฌํ์ฌ ๊ณต๊ฒฉ๋ฐ์ ์ ์๋ ๊ฒฝ๋ก ๊ฐ์
- ์ถ์ฒ 3๊ฐ์ง๊ฐ ๋ชจ๋ ๊ฐ์ ๊ฒฝ์ฐ๋ง ๋์ผํ ์ถ์ฒ๋ผ๊ณ ์ธ์
- ๊ทธ๋ฌ๋ port๋ ๋ช ์๋ ๊ฒฝ์ฐ์๋ง ๋ฒํธ๊น์ง ๊ฐ์์ผ ํ๋ฉฐ, ๊ฒฝ์ฐ์ ๋ฐ๋ผ ๊ฐ๊ฑฐ๋ ๋ค๋ฅธ ์ถ์ฒ๋ก ํ๋จ ๊ฐ๋ฅ
- Internet Explorer๋ ๋นํ์ค์ผ๋ก ์ฌ๊ธฐ๋ ๋ค๋ฅธ ๋ธ๋ผ์ฐ์ ์ ๋ค๋ฅด๊ฒ ๋ค์ ๋ ๊ฒฝ์ฐ๋ ์์ธ์ ์ผ๋ก ์ธ์
- ์์ชฝ ๋๋ฉ์ธ ๋ชจ๋๊ฐ ๋์ ๋จ๊ณ์ ๋ณด์ ์์ค์ ๊ฐ์ง ๊ฒฝ์ฐ
- port๊ฐ ๋ค๋ฅธ ๊ฒฝ์ฐ
scheme
(protocol
: HTTP ๋๋ HTTPS),host
(domain
),port
(์ค์ ๋ ๊ฒฝ์ฐ)๋ก ์ ์
URL์ด
http://edu.ssafy.com
์ผ ๋ ๋ค์ URL๋ค๊ณผ ๋์ผ ์ถ์ฒ์ผ๊น?
URL | ๊ฒฐ๊ณผ | ์ด์ |
---|---|---|
http://edu.ssafy.com/edu/main/index.do |
์ฑ๊ณต | ๊ฒฝ๋ก๋ง ๋ค๋ฅด๋ค |
https://edu.ssafy.com |
์คํจ | ํ๋กํ ์ฝ์ด ๋ค๋ฅด๋ค |
http://edu.ssafy.com:81 |
์คํจ | ํฌํธ๊ฐ ๋ค๋ฅด๋ค (http:// ๋ 80์ด ๊ธฐ๋ณธ๊ฐ)(IE๋ ์ฑ๊ณต) |
http://www.ssafy.com |
์คํจ | ํธ์คํธ๊ฐ ๋ค๋ฅด๋ค |
http://ssafy.com |
์คํจ | ํธ์คํธ๊ฐ ๋ค๋ฅด๋ค |
- Preflight Request ์์ด Main Request๋ง ์กด์ฌ
- ๋ค์ ์กฐ๊ฑด์ ๋ชจ๋ ์ถฉ์กฑํด์ผ ์์ฒญ ๊ฐ๋ฅ
- ๋ฉ์๋ : GET, HEAD, POST ์ค ํ๋
- ์ ์ ์์ด์ ํธ๊ฐ ์๋์ผ๋ก ์ค์ ํ ํค๋ ์ธ์ ์ค์ ํ ์ ์๋ ํค๋ : Accept, Accept-Language, Content-Language, Content-Type
- Content-Type์ ํค๋์ ํ์ฉ๋ ๊ฐ : application/x-www-form-urlencoded, multipart/form-data, text/plain
- ๊ต์ฐจ ์ถ์ฒ ์์ฒญํ๊ธฐ ์ ์ options ๋ฉ์๋๋ก ๋ค๋ฅธ ๋๋ฉ์ธ์ ๋ฆฌ์์ค๋ก HTTP ์์ฒญ์ ๋ณด๋ด ์ค์ ๋ก๋ ๊ทธ ์์ฒญ์ด ์์ ํ์ง ํ์ธ
- ์ ์ ๋ฐ์ดํฐ์ ์ํฅ์ ์ค ์ ์๋ ๊ฒฝ์ฐ(์: delete, put)๋ฅผ ๋๋นํ์ฌ ๋ฏธ๋ฆฌ ์ ์กํ๋ ๊ฒ
Access-Control-Request-Method
์Access-Control-Request-Headers
๋ฅผ ๋ณด๊ณ ์๋ฒ๋ ์์ฒญ์ ์๋ฝํ ์ง ๊ฒฐ์ - Preflight ์์ฒญ์ ๋ณด๋ผ ๋ origin ์ธ์๋ ์์ ์ด ์๋น ์์ฒญ ์ดํ ๋ณธ ์์ฒญ์ ํด๋นํ๋ ๋ด์ฉ๋ ํจ๊ป ์ ์ก
- ์๋ฒ์ ์๋ต์ ํตํด ์์ฒญ์ด ํ์ฉ๋๋์ง ํ์ธ ๊ฐ๋ฅ
Access-Control-Max-Age
ํค๋๊ฐ์ ๋ช ์ํ ์๊ฐ ๋์ Preflight ์์ฒญ ๋์ ๋ณธ ์์ฒญ
- Preflight Request๊ฐ ์ฑ๊ณตํด์ผ Main Request ๊ฐ๋ฅ
- ์ค์ ์๋ต์์๋
Access-Control-Allow-Origin
ํค๋ ํ์
- ์ค์ ์๋ต์์๋
- ๋ธ๋ผ์ฐ์ ์ ํ ํฐ, ์ฟ ํค ์ ๋ณด ๋ฑ ์ฌ์ฉ์ ์๋ณ ์ ๋ณด๋ฅผ ๋ด์ ๋ค๋ฅธ ์ถ์ฒ๋ก ๋ณด๋ด๋ ์์ฒญ์ธ ๊ฒฝ์ฐ
- ํด๋ผ์ด์ธํธ ์ธก์
credentials: include
ํ์ (๋ฌด์กฐ๊ฑด ์ธ์ฆ ์ ๋ณด ํฌํจ) - ์๋ฒ ์ธก์
Access-Control-Allow-Credentials: true
ํ์ - Access-Control-Allow-Origin๋ ์ ํํ ์ ๋ณด๋ง ์์ด์ผ ํ๋ฏ๋ก * ์ฌ์ฉ ๋ถ๊ฐ
์ถ์ฒ: CORS๋ ์ ์ด๋ ๊ฒ ์ฐ๋ฆฌ๋ฅผ ํ๋ค๊ฒ ํ๋๊ฑธ๊น?, ๊ต์ฐจ ์ถ์ฒ ๋ฆฌ์์ค ๊ณต์ (CORS), ๋์ผ ์ถ์ฒ ์ ์ฑ , fetch์ Cross-Origin ์์ฒญ, [10๋ถ ํ ์ฝํก] ๐ณ ๋๋ด์ CORS, ์น๊ฐ๋ฐ ์ง์ฆ์ ๋ฐ์! CORS๊ฐ ๋ญ๊ฐ์?