2023-08-21 TIL ( CS 공부 6일차 )

오준석·2023년 8월 21일
0

TIL (Today I Learned)

목록 보기
72/105

TIL

< Computer Science 6일차 >

CORS(Cross Origin Resource Sharing)에 대해 설명해주세요.

CORS(Cross-Origin Resource Sharing)는 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처(프로토콜, 도메인, 포트번호)의 리소스에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제이다.

간단히 말해서 CORS는 한 출처(도메인)에서 실행되는 웹 페이지가 다른 출처의 리소스(예: 데이터, 이미지, 스크립트 등)를 요청할 수 있는지 여부를 결정하기 위해 웹 브라우저가 사용하는 일련의 규칙을 정의합니다.

CORS의 작동 방식은 다음과 같습니다.
  1. Same-Origin Policy: 웹 브라우저는 기본적으로 "동일 출처 정책"을 적용합니다. 이 정책은 웹 페이지가 웹 페이지 자체를 제공한 출처가 아닌 다른 출처에 요청하는 것을 방지합니다.
  2. Cross-Origin 요청: 웹 페이지가 다른 도메인에서 호스팅 되는 API에서 데이터를 가져와야 하는 경우와 같이 원본 간 요청을 수행하려는 경우가 있습니다. CORS를 사용하면 서버가 요청을 할 수 있는 원본을 명시적으로 지정할 수 있다.
  3. HTTP 헤더: CORS를 구현하기 위해 서버는 리소스에 액세스할 수 있는 출처를 나타내는 특수 HTTP 헤더를 응답에 포함하는데, 이러한 헤더에는 다음이 포함된다.
    • Access-Control-Allow-Origin: 이 헤더를 사용하면 서버는 어떤 도메인에서 오는 요청을 허용할 지를 지정할 수 있습니다. 허용하려는 도메인을 이 헤더에 명시하면, 해당 도메인에서 온 요청에 대해 브라우저가 보안을 우회하고 접근을 허용합니다.``
    • Access-Control-Allow-Methods: 이 헤더는 원본 간 요청에 허용되는 HTTP 메서드(예: GET, POST, PUT, DELETE)를 나열합니다.
    • Access-Control-Allow-Headers: 이 헤더는 실제 요청에 포함될 수 있는 HTTP 헤더를 나열합니다.
    • Access-Control-Allow-Credentials: 이 헤더는 브라우저가 요청에 자격 증명(예: 쿠키 또는 HTTP 인증)을 포함해야 하는지 여부를 나타냅니다.
    • Access-Control-Expose-Headers: 이 헤더는 요청 클라이언트가 액세스할 수 있는 응답 헤더를 나열합니다.
  4. Preflight 요청: 일부 유형의 원본 간 요청(예: 특정 HTTP 메서드 또는 사용자 지정 헤더가 있는 요청)의 경우 브라우저는 실제 요청 전에 서버에 "실행 전" 요청(HTTP OPTIONS 요청)을 보냅니다. 서버는 실제 요청이 허용되는지 여부를 나타내기 위해 적절한 CORS 헤더로 이 프리플라이트 요청에 응답해야 합니다.
profile
개발자를 목표로 열심히 하려고 합니다.

0개의 댓글