Skill Interview 8

HyeRyun CHOI·2022년 4월 12일
0

기술면접

기술영역 : HTTP
질문 : CORS란 무엇이고 목적은 어떻게 되는지 설명, NodeJS기반의 웹 서버에서 CORS를 어떻게 설정하는지 설명

CORS란
CORS(Cross Origin Resource Sharing) : 교차 출처 리소스 공유는 추가 HTTP 헤더를 사용하여 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제, 웹 애플리케이션은 리소스가 자신의 출처(도메인, 포트, 프로토콜)와 다를 때 교차 출처 HTTP 요청을 실행함

CORS의 등장 배경
SOP(Same Origin Policy, 동일 출처 정책)의 등장에 따른 자원의 공유 혹은 응답이 제한되었으나 웹이라는 오픈스페이스 환경에서 다른 출처에 있는 리소스를 가져와서 사용하는 일은 굉장히 흔한 일이라 무작정 제한할 수 없어 몇가지의 예외조항을 두게 됨

같은 출처와 다른 출처 구분
두개의 출처가 같다고 판단하는 로직은 두 URL의 구성 요소 중 scheme(protocol), host, port가 같으면 되는데 이 세가지 중 하나라도 다르면 다른 출처로 판단하여 브라우저가 보안상의 이유로 동일한 출처의 리소스가 아니면 SOP(Same Origin Policy)정책에 따라 차단함

CORS 사용

  • npm, express의 cors 미들웨어를 사용하여 CORS 설정
  • 어떤 출처에서 CORS를 수락할 것인지를 정하는 origin
  • Access-Control-Allow-Credential 헤더를 포함하여 쿠키등의 정보를 포함할 것인지 여부를 정하는 credential
  • 한번 수락한 preflight(사전요청: 본격적인 HTTP요청 전에 서버 측에서 그 요청의 메소드와 헤더에 대해 인식하고 있는지를 체크하는 것)의 유효기간을 정하는 maxage
  • 어떤 메소드들을 수락할 것인지 정하는 methods등이 CORS설정에 포함됨
profile
(˘・ᴗ・˘)

0개의 댓글

관련 채용 정보