CORS

📝 1yangsh·2021년 7월 20일
1

CORS(교차 기원 자원 공유)

https://developer.mozilla.org/ko/docs/Web/HTTP/CORS

  • 웹(Web) = 공유 ⇒ 교차 기원 요청이 가능

  • 다른 기원에서 오는 이미지를 쓸 수 있게 가능

    • 기원 = 스킴(프로토콜) + 호스트(도메인, IP) + 포트


HTTP 요청은 기본적으로 교차 기원 요청(Cross Origin Request)이 가능

기원이 다른 js 파일, 이미지 파일을 가져와서 서비스(보여지고 실행) 가능

  <html>
  <head></head>
  <body>
      <img src="http://127.0.0.1:8000/tile.png" height="200">
      <img src="https://s.pstatic.net/static/www/img/uit/2020/sp_shop_bffdc9.png" height="200">
   
      <script src="http://127.0.0.1:8000/js/main.js"></script>
      <script src="https://nid.naver.com/login/js/bvsd.1.3.4.min.js"></script>
   
  </body>
  </html>

http://127.0.0.1:8000/cors_test.html
http://127.0.0.1:8000/tile.png
http://127.0.0.1:8000/js/main.js
https://s.pstatic.net/static/www/img/uit/2020/sp_shop_bffdc9.png	 ⇐ 기원이 다름에도 불구하고 가져와서 사용이 가능
https://nid.naver.com/login/js/bvsd.1.3.4.min.js



스크립트 내에서 교차 기원 요청은 보안 상의 이유로 제한 ⇒ SOP(Same Origin Policy) : 동일 기원 정책

ajax 통신 = XMLHttpRequest 객체를 이용한 비동기 통신

  • SOP ⇒ XMLHttpRequest 객체를 사용해서 가져오는 리소스는 해당 웹 애플리케이션과 동일한 기원으로 제한

CORS(Cross Origin Resource Sharing: 교차 기원 자원 공유)

⇒ SOP를 완화하는 정책

⇒ Access-Control-Allow-Origin 응답 헤더를 이용해서 자원 사용 여부를 허가


단순 요청(simple request)

프리플라이트 요청(preflighted request)

profile
개발 경험 저장소

0개의 댓글