-
[네트워크] CORS (Cross-Origin Resource Sharing)CS/네트워크 2021. 5. 31. 23:58
CORS
- 다른 출처 간의 리소스 공유
- 동작 방식
- 웹 클라이언트 어플리케이션이 다른 출처의 리소스를 요청할 때 요청 헤더의 Origin이라는 필드에 요청을 보내는 출처를 함께 전달한다.
- 서버가 이 요청에 대한 응답을 할 때 응답 헤더의 Access-Control-Allow-Origin 필드에 "이 리소스를 접근하는 것이 허용된 출처"를 내려주고, 이후 응답을 받은 브라우저는 자신이 보냈던 요청의 Origin과 서버가 보내준 응답의 Accss-Control-Allow-Origin을 비교해본 후 이 응답이 유효한지 아닌지를 판단한다.
- 오픈스페이스 환경에서 다른 출처에 있는 리소스를 가져와서 사용하는 일은 굉장히 흔한 일이라 무작정 막을 수 없기 때문에 몇 가지 예외 사항이 존재하는데 이 조항에 해당하는 것이 "CORS 정책을 지킨 리소스 요청"이다.
CORS를 해결할 수 있는 방법
- Access-Control-Allow-Orign 설정
- 리소스 접근을 허용하는 출처를 명시해준다.
- 리버스 프록싱
출처
- Protocol, Host, Port 정보를 모두 합친 것을 의미
SOP (Same-Origin Policy)
- 같은 출처에서만 리소스를 공유할 수 있다.
- CORS 같은 상황이 발생하면 외부서버에 요청한 데이터를 브라우저에 보안 목적으로 차단
'CS > 네트워크' 카테고리의 다른 글
[네트워크] CORS (0) 2021.07.01 [네트워크] netstat 상태값 (0) 2021.06.12 [네트워크] Synchronous/Asynchronous와 Blocking/NonBlocking (0) 2021.04.26 [네트워크] TCP vs UDP 차이 (0) 2021.04.26 [네트워크] TCP 동작 원리 (0) 2021.04.26