티스토리 뷰
CORS (Cross Origin Resource Sharing)
Cross-Site Http Request를 가능하게 하는 표준 규약입니다.
다른 도메인으로부터 리스소가 필요할 경우 cross-site http request가 필요하게 됩니다. 기존에는 XMLHttpRequest는 보안상의 이유로 자신과 동일한 도메인으로만 HTTP 요청을 보내도록 제한 하였습니다. 즉, cross-origin http 요청을 제한하였죠.
하지만, 지속적으로 웹 애플리케이션을 개선하고 쉽게 개발하기 위해서는 이러한 request가 꼭 필요했습니다. 그래서 XMLHttpRequest가 cross-domain을 을 요청할 수 있도록 하는 방법이 필요하게 되었죠. 이러한 여청을 바탕으로 CORS가 탄생 하였습니다.
1. CROS의 종류
크게 4종류로 나누어 볼 수 있습니다. 4가지 종류는 아래와 같습니다.
- Simple Request
- Preflight Request
- Credential Request
- Non-Credential Request
1.1 Simple Request
- GET, HEAD, POST 중 한가지 방식을 사용.
- POST일 경우에는 Content-type이 아래 셋중 하나를 만족해야함.
- application/x-www-form-urlencoded
- multipart/form-data
- text/plain
- 커스텀 헤더를 전송하지 않아야함.
1.2 Preflight Request
이름에서 볼수 있는 것처럼, Preflight(예비) 요청을 먼저 보내고 서버가 이에 응답이 가능한지 확인 합니다. 예비 요청은 OPTIONS 메소드로 HTTP 요청을 전송합니다.
이 후 실제 Actual (본) 요청을 보냅니다.
그리고 서버가 이에 응답하며 통신을 하는 형태입니다.
1.3 Credential Request
1.4 Non-Credential Request
References:
https://developer.mozilla.org/ko/docs/Web/HTTP/Access_control_CORS |
'dev' 카테고리의 다른 글
TCP (0) | 2017.08.29 |
---|---|
UDP를 사용할 때 고려해야 할 것들 (0) | 2017.08.28 |
ARQ (0) | 2017.08.28 |
프로비져닝(provisioning) (0) | 2017.08.25 |
Swagger로 API 문서 자동화하기 (0) | 2017.08.25 |