이번주는 정리해보면 나름 알찬거 같다.
모든 과제를 구현했고, 프로젝트 진행 상황도 나름대로 빠른 편이라 생각할 수 있는 편이기 때문에 열심히 달려온 한 주였다.
그럼 이번주의 topic인 CORS에 대하여 말해보려 한다.
CORS란, 교차 출처 리소스라는 것으로 최초의 자원이 다른 외부의 도메인에 요청을 넣는 방식을 말한다. 이 방식이 필요한 이유는 원하지 않는 요청에 대하여 그 요청이 수행되는 것을 막기 위하여 있다고 생각한다. 예를 들어, 과장된 예시이지만, 다른 사이트에서 검색을 하다 외부 사이트로 요청이 들어갔는데, 그 요청에 스크립트가 숨겨져 있어 은행 계좌에서 돈을 출금하는 API를 호출한다면 너무나 큰일인데, 이를 방지하기 위하여 CORS가 필요한 것이다.
이를 위하여 2가지 조건이 필요하다. Simple Request, Preflight Request 이 2가지인다.
- Simple Request
- 이는 말그대로 간단한 요청을 말한다.
- GET, POST, HEAD 방식의 요청
- 수동으로 설정한 헤더의 값을 "CORS-safelist request header" 로 정의
- 요청에 ReadableStream
이 아닌 경우
\ - content-tpye의 해더가 application/x-www-form-urlencoded
, 와 multipart/form-data
, text/plain
중 하나여야 함
위와 같은 조건을 지키면 Simple Request로 CORS를 이용가능하다.
- Preflight Request
이는 메인 요철을 하기 전에 하는 사전 요청으로 나는 이런 요청을 이런 해더를 사용해서 실행할 것입니다. 하고 미리 말해주는 것이다 ,.
EX) 예를 든다면 아래와 같다
- Access-Control-Request-Method 헤더에 실제 요청에 사용할 메소드를 설정합니다.
- Access-Control-Request-Headers 헤더에 실제 요청에 사용할 헤더들을 설정합니다.
위의 2가지 조건을 통해 CORS를 사용가능하게 하는 것이다.
'Spring' 카테고리의 다른 글
항해 99 6주차 - 2일 (0) | 2023.09.19 |
---|---|
항해 99 6주차 - 1일 (0) | 2023.09.19 |
항해 99 5주차 - 6일 (0) | 2023.09.16 |
항해 99 5주차 - 5일차 (1) | 2023.09.15 |
항해 99 5주차 - 4 (0) | 2023.09.14 |