
클라이언트에서 서버에 자원을 요청할 때 url을 사용하는데 먼저 url 주소의 구성을 보면
protocol://host/path?query=string&query=string#fragment
protocol, host, path, querystring, fragment로 이루어져 있다.
이 중 protocol과 host:port가 origin resource라고 한다.
정리하면 protocol,host:port가 완전히 다른 곳에서 자원을 요청할 때 필요한게 CORS이다.
Web에서 구현되는 Javascirpt는 Web page 내 구현되어 있는 code에 접근이 쉽게 가능하기 때문에 보안에 취약하다는 단점이 있다.
Simple requests :
GET, POST, HEAD method를 사용할 때 요청한다.
자동으로 기본 setting 되어 있는 headers 이 외에 추가 header가 있는 경우 거부.
Preflighted requests :
PUT, DELETE, CONNECT, TRACE, PATCH method를 사용할 때 OPTIONS method에 의해 임시 요청을 보내 맞는 응답이 왔는지 확인하는 과정이다.
기본 set headers 이 외 추가 header를 추가 설정할 때 Preflighted requests 실행.
Content-type 이 외 내용이 추가되었을 때 실행.
Reference