CORS, HTTP, HTTPS

성민개발로그·2022년 2월 20일
0

프론트엔드

목록 보기
2/10
post-thumbnail

CORS란?

cors는(Cross Origin Resource Sharing)의 약자로 추가 Http 헤더로서, 한 출저에서 실행중인 웹을 다른 출처로 데이터나 리소스를 접근권한을 부여하도록 브라우저에게 알려주는 체제이다.앱플리케이션은 자신의 리소스 출저(프로토콜, 호스트, 포트)와 다른 출저일경우 cors요청이 발생하게 됩니다.

여기서 말하는 동일한 출저는 위와같이 Protocol,Host,그리고 연결되는 Port 번호(80,3000 등) 세가지가 같아야 같은 출저라고 부른다.

Cors 오류 해결하는 근본적인 방법

http 헤더 설정중에 Access-Control-Allow-Origin에 알맞은 값을 부여해주면 문제를 해결할 수 있습니다.

preflight Request 란?

preflight Request는 먼저 OPTIONS라는 메소드를 다른 리소스로 http 요청을 보내서 cross-site 리소스가 안전한지 확인을하고 후속 메소드 요청을 진행 합니다. cross-site 요청은 유저 데이터에게 영향을 주기 때문에 먼저 preflight Request 를 통해서 안전한지 확인을 합니다.

Credentialed Request 란?

credential  읽기 전용 속성은 cross-origin 요청의 경우, user agent가 다른 도메인으로부터 cookie 들을 전달해야만 하는가 아닌가를 나타낸다.

  • omit:모든 요청에 절대로 cookie 들을 전송하거나 받지 않는다.
  • same-origin : URL이 호출 script 와 동일 출처(same origin)에 있다면, user credentials (cookies, basic http auth 등..)을 전송한다. 이것은 default 값이다.
  • include:cross-origin 호출이라 할지라도 언제나 user credentials (cookies, basic http auth 등..)을 전송한다.

Http,Https란? 둘의 차이는?

http(HyperText Transfer Protocol)는 웹 브라우저 클라이언트와 서버에서 문서를 주고받을때 사용되는 하나의 통신규약이다.
http와https 의 근본적인 차이는 보안에 있습니다. http는 클라이언트와 서버가 문서를 주고 받을때 내용 그대로 전달을 해줘서 보안에 취약합니다.
반대로 https 는 보안에 강화가 되서 문서를 주고 받을때 모든 내용들을 암호화해서 주고 받는다. 아무래도 매번 암호화를 진행을 해서 속도적으로는 http보단 느리다. 애플리케이션 정보들이 보안에 신경 안써도 되는 정보들이면 http프로토콜을 쓰는걸 권장한다.

0개의 댓글