CORS
❓질문
CORS(Cross-Origin Resource Sharing)는 무엇이며 왜 필요한가요?
💡 조사하기전 내가 알고 있던 내용
CORS
약자의 뜻은 교차 출처 리소스 공유
입니다.
브라우저는 원래 SOP(동일 출처 정책)
가 기본으로 설정 되어있습니다 즉 같은 출처가 아니면 서로 데이터를 주고 받지 못한다는거죠 그렇기에 브라우저(프론트엔드)와 서버(백엔드)의 통신이 정상적으로 이루어질려면 동일 출처
가 아닌 타 출처
끼리도 통신이 가능해야 됩니다.
보통 CORS
의 경우 서버
에서 이를 설정 할 수 있는데 그 내용은 특정 출처에서 들어오는 접근이나 헤더에 특정한 값이 있어야한다던지 이런식으로 설정하여 안전하게 원하는 출처만을 선택해 서로 자원을 접근 할 수 있게합니다.
🏫 정리한 내용
대부분 위 내용과 동일합니다 그러나 헤더에 특정한 값이 있어야한다던지
라는 지식이 틀린거 같아 정정합니다.
먼저 CORS의 설정에는 Access-Control-Allow-@
라는 속성을 설정할 수 있고 여기서 CORS와 관련된 설정을 할 수 있습니다.
하지만 헤더 설정인 Access-Control-Expose-Headers
는 헤더에 특정한 값이 있어야 되는것이 아닌 브라우저에서 접근할 수 있는 응답 헤더 지정
을 할 수 있는 속성입니다.
즉 이러한 값을 보낼 수 있으니 이 값을 받아서 추가적인 로직을 통해 검증을 한다던지 할 수 있다는겁니다.
그 외에도 쿠키등을 보낼 수 있는지 여부 , 허용되는 HTTP 메서드 지정 등의 다양한 CORS 설정이 있습니다.