StoryCode

2020-289.CORS

IT 용어, 인터넷 활용 등등
반응형

# 참조 : https://bohyeon-n.github.io/deploy/web/cors.html (2020-289/3.png)

 

CORS 2 Type Simple Request Preflighted Request
Method GET, HEAD, POST
단, POST 인 경우 content-type
application/x-www-form-unlencoded
multipart/form-data
text/plain
OPTIONS
CORS 처리 과정 1) 브라우저에서 서버로 요청을 보내기를 시도한다.
2) 브라우저는 Host 와 Origin 을 자동으로 추가한다.
GET /products/ HTTP/1.1
Host: api.domain.com
Origin: https://www.domain.com
3) 서버에서 Origin 리퀘스트 헤더를 확인합니다. Origin 값이 허용되면, Access-Control-Allow-Origin요청 헤더 Origin 값으로 설정한다.
Http/1.1 200 OK
Access-Control-Allow-Origin: https://www.domain.com
Content-Type: application/json
4) 응답을 받은 브라우저는 Access-Control-Allow-Origin 헤더가 탭의 출처와 일치하는지 확인한다. Access-Control-Allow-Origin 값이 정확히 출처와 일치하거나, "*" 와일드 카드 연산자를 포함하는 경우 검사가 통과된다.
1) 브라우저에서 진짜 요청을 보내기 전에 미리 확인 요청을 보낸다. 이 요청은 OPTIONS 메소드를 사용한다.

2) OPTIONS /products/ HTTP/1.1
Host: api.domain.com
Originhttps://www.domain.com
Access-Control-Request-Method: POST
Access-Control-Request-Headers: Authorization, Content-Type

3) 서버는 허용된 메소드 및 헤더를 지정하여 응답한다.
HTTP/1.1 200 OK
Access-Control-Allow-Origin: https://www.domain.com
Access-Control-Allow-Method: GET, POST, OPTIONS, PUT
Access-Control-Allow-Headers: Authorization, Content-Type
Content-Type: application/json

4) 헤더와 메소드가 통과되면, 브라우저는 원래 CORS 요청을 보낸다.

POST /products/ HTTP/1.1
Host: api.domain.com
Authorization: token
Content-Type: application/json
Origin: https://www.domain.com
반응형