[Network] Extra. SOP, CORS

KYJ의 Tech Velog·2023년 4월 28일
0

Network

목록 보기
18/21
post-thumbnail

SOP

SOP(Same-Origin Policy)는 같은 출처에서만 리소스를 공유할 수 있다라는 개념의 정책입니다. 출처가 같다는 것은 URI에서 프로토콜, 호스트, 포트 번호가 같다는 의미입니다.

ex) https://www.naver.com:8080
Protocol : http://
Host : www.naver.com
Port : 8080

브라우저에 따라 프로토콜과 호스트만 비교하는 경우도 있습니다(Internet Explorer). 브라우저에 따 비교 로직도 다릅니다. 브라우저는 서버로부터 받은 응답 메시지의 헤더를 분석하여 만약 정책을 위반한다면 해당 메시지는 파기됩니다.

CORS

CORS(Cross-Origin Resource Sharing)는 다른 출처로 리소스를 공유할 수 있다라는 개념의 정책입니다.

Prefligt

브라우저가 서버에 요청을 보낼 때, 먼저 HTTP OPTIONS 요청을 보냅니다. 이를 CORS preflight 요청이라고 합니다.

브라우저에서 어떤 데이터를 서버로 보낸다고 가정합니다. 데이터에 여러 처리를 하고 보내려고 했는데 서버가 POST 요청을 허용하지 않는다면 보낼 수 없을 것입니다. 그렇다면 브라우저의 작업은 무용지물이 되어버립니다. 이를 방지하기 위해서 서버에서 어떤 메소드와 어떤 헤더를 허용하는지 확인하는 과정이 필요합니다. 이를 Preflight에서 수행합니다.

호스트가 특정 HTTP 메소드로 요청을 보낸다면 HTTP OPTIONS를 미리 보내고 해당 응답을 확인한 후, 우리가 보낸 HTTP 메소드가 지원하면 실제 요청이 이뤄지는 것입니다.

OPTIONS는 허용되는 메소드를 알려주는 요청입니다.

0개의 댓글