๋ฐฐ๊ฒฝ์ง์
* HTTP: HyperText Transfer Protocol์ ์ฝ์๋ก, ์ธํฐ๋ท์์ ์ ๋ณด๋ฅผ ์ก์์ ํ๋ ํ๋กํ ์ฝ (๊ท์ฝ)์ ๋๋ค. HTML๋ฌธ์ ์ก์์ ์ ์ฃผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
* REST API: Repersentational State Trasfer API์ ์ฝ์๋ก, REST๋ผ๋ ๊ท์น์ ๋ง์ถฐ ๊ฐ๋ฐ ๋ฐ ์ ๊ณต๋๋ API๋ฅผ ๋งํฉ๋๋ค.
* API: Application Programming Interface์ ์ฝ์๋ก, ํน์ ์๋น์ค๋ ์์ฉ ํ๋ก๊ทธ๋จ์์ ์์ ๋ค์ ์๋น์ค ๋ด๋ถ์ ๊ธฐ๋ฅ๋ค์ ์ ์ดํ ์ ์๋๋ก ๋ง๋ค์ด๋์ ์ธํฐํ์ด์ค๋ฅผ ๋งํฉ๋๋ค.
๊ต์ฐจ ์ถ์ฒ ๋ฆฌ์์ค ๊ณต์ (Cross Origin Resource Sharing)
ํ๋ง๋๋ก "๋ค๋ฅธ ์ฌ์ดํธ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ํจ๋ถ๋ก ์ฌ์ฉํ ์ ์๋ ์ ์ฑ "์ ๋๋ค.
์น์์ ์กด์ฌํ๋ ๋ฐ์ดํฐ์ ๋ํ ์ถ์ฒ๋ฅผ ๋ณด์ฅํ๊ณ , ๊ทธ ์ถ์ฒ์ ๋ฐ๋ฅธ ๋ฐ์ดํฐ์ ๋ฌด๋จ ๋์ฉ์ ๋ฐฉ์งํจ์ผ๋ก์ ๋ถ๋ฌ์จ ๋ฌธ์๋ ์คํฌ๋ฆฝํธ๊ฐ ๋ค๋ฅธ ์ถ์ฒ์์ ๊ฐ์ ธ์จ ๋ฆฌ์์ค์ ์ํธ์์ฉํ๋ ๊ฒ์ ์ ํํ๋ ์ค์ํ ๋ณด์ ๋ฐฉ์์ ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์ด ์ ์ฑ ์ ํตํด ์น์์์ ๋ฐ์ํ ์ ์๋ ์ ์ฌ์ ์ ์ฑ ๋ฌธ์๋ฅผ ๊ฒฉ๋ฆฌํ๊ณ , ๊ถ๊ทน์ ์ผ๋ก ๊ณต๊ฒฉ์์ ๊ณต๊ฒฉ๊ฒฝ๋ก๋ฅผ ์ค์ด๋ ๊ฒ์ ๋์์ด ๋ฉ๋๋ค.
๊ต์ฐจ ์ถ์ฒ ๋ฆฌ์์ค ๊ณต์ (์ดํ CORS ์ ์ฑ )์ 2๊ฐ์ง ๊ฒฝ์ฐ์ ์ ์ฉ๋ฉ๋๋ค
1) ์์ฒญ์ง์ ์๋ต์ง์ "๋๋ฉ์ธ"์ด ๋ค๋ฅผ ๊ฒฝ์ฐ
2) ์์ฒญ์ง์ ์๋ต์ง์ "ํฌํธ"๊ฐ ๋ค๋ฅผ ๊ฒฝ์ฐ
์ ์ฉ์ฃผ์ฒด
CORS ์ ์ฑ ์ ๋ธ๋ผ์ฐ์ ์์ ์ ํํฉ๋๋ค. ์ฆ, ๋ง์ฝ CORS ์ ์ฑ ์ ์๋ฐํ๋ ์ด๋ค ์์ฒญ์ด ์คํฌ๋ฆฝํธ๋ HTML ๋ฌธ์์ ์ํด ์์ฒญ๋๋ค๋ฉด, ์์ฒญ์ ์ ์์ ์ผ๋ก ๊ฐ์ง๋ง, ์๋ต์ด ๋์์จ ํ ์ ์์์ ๋ธ๋ผ์ฐ์ ์์ ์ ๊ทผ์ด ๊ธ์ง๋ฉ๋๋ค. ์ด ์ ์ฑ ์ผ๋ก ์ธํด ์ ํ๋๋ ๋ชจ๋ ์๋ต์ ๋ฒ๋ ค์ง๋๋ค.
ํด๊ฒฐ๋ฐฉ๋ฒ
1) ์ ์ํ๋ ๋ธ๋ผ์ฐ์ ์์ ์ค์ ํด์ (๊ถ์ฅ๋์ง ์์)
์์ ๋งํ๋ฐ์ ๊ฐ์ด, CORS ์ ์ฑ ์ ์ ํ์ฃผ์ฒด๋ ์ ์ํ๋ ๋ธ๋ผ์ฐ์ ์ ๋๋ค. ์ฆ, ๋ธ๋ผ์ฐ์ ์์ ํด๋น ์ค์ ์ ํด์ ํ๋ฉด CORS ์ ์ฑ ๊ณผ ๋ฌด๊ดํ๊ฒ ๋ชจ๋ ์์ฒญ์ ๋ํ ์๋ต์ ๋ฐ์ ์ ์์ต๋๋ค. ํ์ง๋ง ์ด๋ฐ ๋ฐฉ๋ฒ์ ๋ณด์์ฑ์ ์ ํ์ํฌ ์ ์๊ณ , ๋ํ ํ์ค์ ์ผ๋ก ์ ์ํ๋ ๋ชจ๋ ์ฌ์ฉ์์ ๋ธ๋ผ์ฐ์ ์ ์ค์ ์ ํด์ ํ๋ผ๊ณ ํ๋ ๊ฒ๋ ์ด๋ ต์ต๋๋ค.
2) ์๋ฒ์ ์๋ต์ ํค๋ ์ถ๊ฐ
๊ทธ๋ ๋ค๋ฉด ๋ธ๋ผ์ฐ์ ์์ ํด๋น ์์ฒญ์ "์ฌ์ ์ ํ๊ฐ๋ฐ์ ์์ฒญ"์ผ๋ก ์ธ์ํ๋๋ก ํ๋ค๋ฉด ํด๊ฒฐํ ์ ์์ ๊ฒ์ ๋๋ค. ์ด๋ ๊ฒ ์ธ์ํ ์ ์๋๋ก ์ ๋ณด๋ฅผ ์ ๊ณตํ๊ธฐ์ํด ์๋ฒ์ ์๋ต์ "Access-Control-Allow-Origin"์ด๋ผ๋ ์ด๋ฆ์ ํค๋๋ฅผ ์ถ๊ฐํ๋๋ก ์์ฒญํ์ธ์.
Access-Control-Allow-Origin์ด๋ Cross-Origin ์์ฒญ, ์ฆ ๋ค๋ฅธ ์ฌ์ดํธ๋ก๋ถํฐ ๋ฐ์์ค๋ ์ ๋ณด๋ค์ด ํ์ฌ ๋์ฐฉ์ง์๋ ํ๊ฐ๋์ด์๋ค๋ ๊ฒ์ ์๋ ค์ฃผ๋ ํค๋์ ๋๋ค. ์๋ตํค๋์ ํด๋น๊ฐ์ด ์์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ฐ๋์ ์๋ฒ๊ฐ๋ฐ์์๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ณ ์ ํ๋ ์ฌ์ดํธ์ ์ฃผ์๋ฅผ ์ถ๊ฐํด์ค ๊ฒ์ ์์ฒญํด์ผ ํฉ๋๋ค.
'๐จ Dev_BE > ๊ฐ๋ ์ ๋ฆฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ Server ] CSP (0) | 2021.09.20 |
---|---|
[ Server ] Cookie vs Session (+JWT) (0) | 2021.09.11 |
[ REST API ] HTTP Methods (0) | 2021.09.11 |