cors에 관한 설정 내용 정리글입니다. 추후 내용이 추가될 수 있습니다
SOP(Same Origin Policy): 어떤 출처에서 다른 출처의 리소스를 사용하는 것을 제한하는 보안 방식입니다. 브라우저는 기본적으로 다른 출처에서 오는 요청에 대해서 공격시도라고 생각하기 때문에 설정된 정책입니다
Origin Example: http:localhost:8082
(프로토콜 + 호스트 + 포트)
EX)
http://localhost:8082
에서http://localhost:8080/api/health
호출 시 다른 Origin이므로 브라우저에서 에러가 발생합니다
CORS(Cross-Origin Resource Sharing): 다른 출처에 리소스를 공유하는 것을 말합니다
cross origin
에 대해서 HTTP
요청 전에 서버 측에서 해당 요청을 보낼 수 있는지 확인하는 Preflight Request(사전 요청)을 보냅니다HTTP OPTIONS
메소드를 사용합니다CORS
오류는 웹브라우저에서 발생하기 때문에 서버에서는 정상적으로 요청을 처리했는데 클라이언트에서는 오류가 난 것처럼 보일 수 있기 때문에 Preflight Request를 이용해서 사전에 확인하는 작업을 합니다Preflight
를 발생시키는 것은 아니고 아래 조건을 모두 만족하는 요청의 경우는 단순 요청(Simple Request) 이라고 하며 Preflight
가 발생하지 않습니다Content-Type
헤더의 경우 "application/x-www-form-urlencoded", "multipart/form-data", "text/plain" 값들일 경우에만 Preflight
가 발생하지 않습니다