cors
Q. cors란? A. 웹에는 SOP라는 정책이 있다. 사이트 간 HTTP 요청은 불가능한 정책이다.
여기서 same origin은 프로토콜, 호스트명, 포트와 같은 것들인데, 여기서 하나라도 다르면 SOP 정책 위반이다.
Q. 서비스에는 다양한 API를 호출해야 할텐데 cors정책을 해결하기 위해서는? A. CORS라는 정책? 이 있다. 말그대로 다른 서버의 리소스를 사용할 수 있다는 말이다.
서버에서 내 웹서비스를 허용해주면 자원 접근이 가능하다. Access-Control-Allow-Origin에 내 도메인을 추가해주면된다. 쿠키나 특정 메서드로 제한할 경우 헤더에 추가하면된다.
Q. 그럼 어떻게 서버에서 저것만 추가하면 해결되는건가? 어떻게 동작되는가? A. SOP은 브라우저에서 결정된다. 즉 브라우저가 SOP에 위반되는 요청을 보내네? 라고 판단한다. 이 때, preflight 요청을 먼저 보낸다. 메서드명은 OPTION이다. 서버는 OPTION 메서드를 보고 Access-Control-Allow-Origin에 내 도메인을 추가해서 보내준다. 브라우저는 해당 헤더를 보고 이제서야 내가 요청한 것을 보낸다.
Last updated
Was this helpful?