본문 바로가기
서버 기본상식

CORS

by 왕밤 2021. 8. 4.

다른 출처로의 리소스 요청을 제한하는 것과 관련된 두 가지 정책

 

- CORS(Cross-Origin Resource Sharing)

- SOP(Same-Origin Policy)

 

 

origin?

 

 

 

출처(orgin)는 Protocol과 Host, 그리고  :8080과 같은 포트 번호까지 모두 합친 것을 의미한다.

즉, 서버의 위치를 찾아가기 위해 필요한 가장 기본적인 것들을 합쳐놓은 것을 말한다.

 

 

 

오리진과 비슷한 개념으로는 도메인(domain)이 있다. 둘 사이의 구체적인 예로는 아래와 같다.

 

  •  도메인(domain): naver.com

  •  오리진(origin): https://www.naver.com/PORT

 

도메인과 오리진의 차이는 프로토콜과 포트번호의 포함 여부차이

 

 

 

 

 

 

SOP?

 

Same-Origin Policy

 “같은 출처에서만 리소스를 공유할 수 있다”라는 보안 정책

 

웹 인터페이스의 다양화 및 다른 출처로 된 데이터를 가져와 사용하는 것에 대한 보편화 등으로

몇 가지 예외 조항을 두고 이 조항에 해당하는 리소스 요청은 출처가 다르더라도 허용하기로 했다!

 

그 중 하나가 CORS

 

 

 

 

CORS?

 

Cross-Origin Resource Sharing

교차(다른) 출처 리소스 공유의 영문 줄임말

 

어떠한 오리진에서 작동하고 있는 웹 어플리케이션이 다른 오리진 서버로의 엑세스를

오리진 사이의 HTTP 요청에 의해 허가를 할 수 있는 체계

 

 

 

같은 출처란?

 

사실 두 개의 출처가 서로 같다고 판단하는 로직

=> 두 URL의 구성 요소 중 Scheme, Host, Port 이 3가지만 동일하면 된다.

 

 

 

Preflight

브라우저가 본 요청을 보내기 전에 보내는 예비 요청

HTTP 메소드 중 OPTIONS 메소드 사용

 

후 본 요청을 보낸다!

 

 

Simple Request

예비 요청을 보내지 않고 바로 서버에게 본 요청부터 받은 후, 서버가 이에 대한 응답의 헤더에 Access-Control-Allow-Origin과 같은 값을 보내주면 그때 브라우저가 CORS 정책 위반 여부를 검사하는 방식이다.

 

Preflight와 예비 요청의 존재 유무만 다르다

 

 

 

CORS를 허용하기 위한 HTTP 헤더 4가지

 

1) access-control-allow-origin : 허락한 도메인 주소

2) access-control-allow-method : 허용하는 메소드

3) access-control-allow-headers : 사용가능한 헤더

4) access-control-max-age : preflight requset 허용시간(초)

 

'서버 기본상식' 카테고리의 다른 글

3) 도메인 , DNS  (0) 2021.09.02
2) IP와 포트  (0) 2021.09.02
1) URL  (0) 2021.09.02
클라이언트 - 서버 아키텍처  (0) 2021.09.02
HTTP method 정리  (0) 2021.07.29

댓글