나의 개발일지(김지헌)
항해 99 35일차 10/23일 본문
WIL 주제
CORS(교차 출처 자원 공유 방식)
Cross-Origin Resource Sharing
Cross-Origin이니까 Same-Origin, 동일 출처의 반대 개념이다.
다른 출처간에 리소스를 공유 할 수 있도록 하는 걸 말한다.
출처는 보내고 받는 각각의 위치이며 웹사이트나 api의 주소 이며 리소스는 주고 받아지는 데이터이다.
서로 다른 출처끼리 정보 요청과 반환이 가능하게 해주는 것이 CORS이다.
합의된 출처들 간에 합법적으로 허용해주기 위해 기준을 충족 시키면 리소스 공유가 되도록 만들어진 메커니즘이다
요청을 받는 백엔드쪽에서 이걸 허락할 다른 출처들을 미리 명시해 두면 되는데 옵션을 넣어서 쉽게 가능하다
-프론트에서 백엔드로 api요청을 보내면 다른 출처의 요청이므로 cross-orgin요청이고 요청에 header를 추가한다.
header의 orgin 항목에는 요청하는 쪽의 scheme과 도메인 그리고 포트가 담긴다.
ex) http://123456.com:3000/posts // http : scheme , 123456.com 도메인 , 3000 포트 라고 생각 하면 될꺼 같다..
orifin에서 보낸 출처값이 서버의 답장 header에 담긴 Access-Control-Allow-Origin에 똑같이 있으면 안전한 요청으로 간주하고, 응답 데이터를 받아오게 된다.
- 토큰 등 사용자 식별 정보가 담긴 요청에는 보다 엄격하게 한다
보내는 측에서 요청의 옵션에 credential 항목을 true로 세팅하고, 받는 쪽에서도 아무 출처나 받는 와일드카드가 아닌 보내는 쪽의 출처와 웹페이지 주소를 정확히 명시하여 Access-Control-Allow-credential 항목을 true로 맞춰줘야한다.
-simple requests는 다음 조건을 모두 충족하는 요청입니다
다음 중 하나의 메서드(GET,HEAD,POST)를 사용하는 방법이고
PUT,DELETE등 이와 다른 요청들은 본 요청을 보내기 전에 Preflight 요청이란 걸 보내서 본 요청이 안전한지 확인하고 허락이 떨어져야 요청을 할 수 있다.
header
데이터가 다른곳으로 전송될때 데이터의 맨 앞쪽에 붙은 보충 정보이다.
받는 쪽의 IP주소, 사용할 프로토콜이나 옵션이 당긴다
'항해 99' 카테고리의 다른 글
항해 99 37일차 10/25일 (0) | 2022.10.26 |
---|---|
항해 99 36일차 10/24일 (0) | 2022.10.25 |
항해 99 34일차 10/22일 (0) | 2022.10.23 |
항해 99 33일차 10/21일 (0) | 2022.10.22 |
항해 99 32일차 10/20일 (0) | 2022.10.21 |