Cross-Origin Resource Sharing
교차 출처 리소스 공유
추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제
브라우저는 SOP에 의해 기본적으로 다른 출처의 리소스 공유를 막지만, CORS를 사용하면 접근 권한을 얻을 수 있게 되는 것
실제 요청을 보내기 전에 미리 권한 확인을 할 수 있기 때문에, 실제 요청을 처음부터 통째로 보내는 것보다 리소스 측면에서 효율적이다.
CORS에 대비가 되어있지 않은 서버를 보호할 수 있다. CORS 이전에 만들어진 서버들은 SOP 요청만 들어오는 상황을 고려하고 만들어졌다. 따라서 다른 출처에서 들어오는 요청에 대한 대비가 되어있지 않았다.
이러한 이유로 프리플라이트 요청이 CORS의 기본 사양으로 들어가게 되었다.
response를 한 번에 보낼 것인지 여러 번에 걸쳐 나누어서 보낼 것인지에 따라 사용할 수 있는 코드의 가능성이 달라진다.
response를 여러 번에 걸쳐 보낼 때는 response.write()을 여러 번 사용하여 내용을 전달한 다음 response.end()로 connection을 끝내면 된다.
response를 한 번에 보낼 때는 두 가지 방법이 있다.
1. response.write()와 response.end()를 사용하기.
2. response.end()만 사용하여 response의 전달과 connection 종료 시점 명시를 한 번에 할 수 있다.