A : HTTP๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ฒญ/์๋ต ๊ตฌ์กฐ๋ก ๋์ด์๊ณ ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ตํํ๊ธฐ ์ํ ํ์ค ํ๋กํ ์ฝ์ ๋๋ค.
๐ ์์ฒญ ๋ฉ์์ง ๊ตฌ์กฐ
- Start Line
- HTTP ๋ฉ์๋ (GET,POST๋ฑ)
- ์์ฒญ ๋์์ ๋ฆฌ์์ค ๊ฒฝ๋ก
- Header Fields
- ์ถ๊ฐ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ ํค๋ ํ๋ (ex. content-Type, User-agent)
- ๊ฐ ํค๋ ํ๋๋ "ํ๋ ์ด๋ฆ : ๊ฐ"์ ํ์์ ๊ฐ์ง
- Empty Line : ํค๋์ ๋ฉ์์ง ๋ฐ๋๋ฅผ ๊ตฌ๋ถํ๋ ๋น ์ค
- Message Body
- ์์ฒญ์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ด์
- POST ๋ฉ์๋์ ๊ฐ์ด ๋ฐ์ดํฐ๋ฅผ ์๋ฒ๋ก ์ ์กํ ๋ ์ฌ์ฉ
๐ ์๋ต ๋ฉ์์ง ๊ตฌ์กฐ
- Start Line
- ํ๋กํ ์ฝ ๋ฐ ๋ฒ์ (ex.HTTP/1.1)
- ์ํ ์ฝ๋ : ์๋ต ์ํ๋ฅผ ๋ํ๋ด๋ ์ธ์๋ฆฌ ์ซ์ ์ฝ๋ (200,404,500)
- ์ํ ๋ฉ์์ง : ์ํ ์ฝ๋์ ๋ํ ๊ฐ๋ตํ ์ค๋ช
- Header Line : ์๋ต์ ๋ํ ๋ถ๊ฐ ์ ๋ณด๋ฅผ ํฌํจํ๋ ํค๋ ํ๋๋ค
- Empty Line : ํค๋์ ๋ฉ์์ง ๋ฐ๋๋ฅผ ๊ตฌ๋ถํ๋ ๋น ์ค
- Message Body : ์๋ฒ์์ ํด๋ผ์ด์ธํธ๋ก ์ ์ก๋๋ ๋ฐ์ดํฐ์ด๋ฉฐ ์ผ๋ถ ์๋ต์ ๋ฐ๋๋ฅผ ํฌํจํ์ง ์์ ์ ์์
๋์ผ ์ถ์ฒ ์ ์ฑ (SOP)๊ณผ ๊ฐ์ ์ถ์ฒ์ ๋ฆฌ์์ค๋ง ๊ณต์ ๊ฐ ๊ฐ๋ฅํ ์ ์ฑ ์ด๋ฉฐ ๋ค๋ฅธ ์ถ์ฒ ์๋ฒ์ ์๋ ํ์ด์ง์์ ์ํธ์์ฉ์ด ๋ถ๊ฐํฉ๋๋ค. ์ด ๋จ์ ์ ๋ณด์ํ๊ณ ์ ๊ต์ฐจ ์ถ์ฒ ๋ฆฌ์์ค ๊ณต์ ๊ฐ ๊ฐ๋ฅํ CORS๋ผ๋ ๊ธฐ๋ฅ์ด ๋์์ต๋๋ค. ์ด๋ ๋ค๋ฅธ ์ถ์ฒ๋ก๋ถํฐ ์ ํํ ์์์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๊ฒ๋ ๊ถํ์ ๋ถ์ฌํฉ๋๋ค.
A : CORS ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ์ฃผ์ ๋ฐฉ๋ฒ์ ์๋ฒ ์ธก์์ ์ ์ ํ CORS ํค๋๋ฅผ ์ค์ ํ๋ ๊ฒ์ ๋๋ค.
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, PUT, DELETE
Access-Control-Allow-Headers: Content-Type, Authorization
Access-Control-Allow-Credentials: true