SOP์ CORS
SOP(Same Origin Policy)๋?
ํ origin์ผ๋ก๋ถํฐ ๋ก๋๋ document ๋๋ script๊ฐ ๋ค๋ฅธ origin์ ๋ฆฌ์์ค์ ์ํธ์์ฉ ํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ํํ๋ ์ค์ํ ๋ณด์ ๋ฉ์ปค๋์ฆ์ด๋ค.
๋ธ๋ผ์ฐ์ ๊ฐ document๋ฅผ ๋ฐ์ ๋๋ ๊ทธ document์ ์ถ์ฒ๋ฅผ origin์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ์ ์ฅํด๋๋ค.
๊ทธ๋ฐ๋ฐ ์ด ๋ document ๋ด์์ ์ธ๋ถ๋ฆฌ์์ค๋ค๊ณผ ์ํธ์์ฉ ํ ๋ ์ต์ด ํ์ ํ origin๊ณผ ๋ค๋ฅด๋ค๋ฉด, ๋ณ๋์ ์ ํ์ ๋๊ฒ ๋๋ ๊ฒ์ด๋ค.
์ด origin์ ํ์ ํ ๋๋ scheme, Host, Port๋ง ๋ณด๊ณ ์ ํ๋จํ๊ฒ ๋๋ค.
https://www.example.com:443/path/page.html
์ด origin์ด๋ผ๊ณ ์น๋ฉด, scheme(https
)๊ณผ Host(www.example.com
)์ port(443
)์ด ๋์ผํ URL์ same origin์ผ๋ก ํ๋ณํ๊ฒ ๋๋ ๊ฒ์ด๋ค. ์ด ๋ port๋ ์๋ต๋์ด์์ ๋ scheme์ ํ ๋น๋๋ ํฌํธ๋ฒํธ๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ํ๋ณํ๊ฒ ๋๋ค.
์ SOP๊ฐ ์ค์ํ ๊น?
ํด์ปค๊ฐ ์ ์์ ์ธ ์ฝ๋๋ฅผ ๋ฃ์ ์ฌ์ดํธ๋ฅผ ์ ์ ๊ฐ ์ด์ด๋ฒ๋ฆฐ ์๋๋ฆฌ์ค๋ฅผ ์๊ฐํด๋ณด์.
๋ง์ฝ ์ ์ ๊ฐ gmail ๋ฑ์ ์ ์ํด๋ ์ํ๋ผ๋ฉด ์ฟ ํค๊ฐ ์ด์์์ ๊ฒ์ด๊ณ , ํด์ปค๋ '์ ์์ ์ธ ์ฝ๋'๋ฅผ ํตํด ์ด ์ฟ ํค๋ฅผ ์๋์ผ๋ก ์ฒจ๋ถํ์ฌ ๊ตฌ๊ธ ๋ฉ์ผ ์๋ฒ์ ์ ์ ์ ๋ฉ์ผ ์ ๋ณด๋ฅผ ์์ฒญํ ์ ์๋ค.
๊ตฌ๊ธ ๋ฉ์ผ ์๋ฒ๋ ์ฟ ํค๋ง ํ์ธํ๊ณ ๋ฉ์ผ ์ ๋ณด๋ฅผ ์๋ตํ๋ค.
์ด์ SOP ์ ๋ฌด์ ๋ฐ๋ผ ํด์ปค์๊ฒ ๋ฉ์ผ์ ๋ณด๊ฐ ๋์ด๊ฐ๋์ง ์ ๋ฌด๊ฐ ๊ฒฐ์ ๋๋ค.
SOP๊ฐ ์๋ค๋ฉด? ๋ฉ์ผ ์ ๋ณด๊ฐ ๊ทธ๋๋ก ํด์ปค์๊ฒ ๋์ด๊ฐ๋ค.
SOP๊ฐ ์๋ค๋ฉด? origin์ด gmail์ด ์๋๋ผ ํด์ปค์ ์ฌ์ดํธ์ด๋ฏ๋ก CORS ์ ์ฑ ์ ์ํด ๋ฉ์ผ ์ ๋ณด read๊ฐ ๋ถ๊ฐํ๋ค. ํด์ปค๋ ์ ๋ณด๋ฅผ ์ฝ์ ์ ์๋ค!
Cross-origin Network Access๋ฅผ ํ์ฉํ๋ ๋ฐฉ๋ฒ
Cross-origin๊ฐ์ ํต์ ์ด ํ์ํ ๊ฒฝ์ฐ๋?
JSONP
NO!
๋ชจ๋ origin ๋์์ผ๋ก SOP๋ฅผ ๋ฌด๋ ฅํ
CORS
YES!
ํ์ฉํ origin๋ง์
Access-Control-Allow-Origin
์ ๋ช ์์ ์ผ๋ก ์ถ๊ฐ
Last updated