99클럽 TIL
99클럽 코테 스터디 24일차 Network CORS
차가리
2024. 6. 12. 17:38
728x90
- NetWork
- DNS
DNS ResolverDNS란
- Http Header
- CORS
- keep-alive header
- Persistent Connection, Non-Persistent Connection
- OSI 7 계층과 각 계층의 구성요소
- TCP vs UDP
- DNS
란?
- 출처가 다른 자원들을 공유한다는 뜻으로, 한 출처에 있는 자원에서 다른 출처에 있는 자원에 접근하도록 하는 개념임.
➡️ 교차되는 출처 자원들의 공유
기본적으로 웹 브라우저는 같은 출처 정책(Same-Origin Policy) 를 사용하여, 한 출처(도메인, 프로토콜, 포트)에서 불러온 스크립트가 다른 출처의 자원에 접근하는 것을 제한함.
작동
- Simple Request : GET, HEAD, POST 와 같은 표준 메서드를 사용하고, Accept, Content-Type 등 제한된 헤더만을 사용하는 요청임.
이 경우, 브라우저는 자동으로Origin
헤더를 Request에 포함시키고, 서버는 이에 대한 응답으로Access-Control-Allow-Origin
헤더를 보냄.
이 헤더의 값이 요청한 출처와 일치하거나 '*' (모든 출처 허용)인 경우, 브라우저는 요청을 성공적으로 처리함. - Preflight Request : PUT, DELETE 등과 같은 비표준 메서드를 사용하거나, 표준이 아닌 헤더를 사용하는 요청의 경우, 브라우저는 실제 요청을 보내기 전에
사전요청
을 서버에 보냄.
이는OPTIONS
메서드를 사용하여 이루어지며, 서버는 이에 대해 허용 가능한 메서드, 헤더, 출처 등을 알려주는 응답을 보냄.
CORS 헤더
Access-Control-Allow-Origin
: 이 헤더는 서버가 어떤 출처의 접근을 허용할지를 명시함. 특정 도메인, 여러 도메인, 또는 '*'를 사용해 모든 도메인을 허용할 수 있음.Access-Control-Allow-Methods
: 사전 요청에서 사용, 서버가 허용하는 HTTP 메서드를 명시함.Access-Contro-Allow-Headers
: 사전 요청에서 사용, 서버가 허용하는 헤더를 명시함.Access-Control-Max-Age
: 사전 요청의 결과를 캐시할 시간(초 단위) 를 명시함.Access-Control-Allow-Credentials
: 쿠키나 인증 관련 헤더를 요청과 함께 보낼 수 있도록 허용할지의 여부를 명시함.
중요성
CORS 는 보안과 유연성 사이의 균형을 제공함. 웹 개발에서 다양한 서비스와 자원을 통합하고, API 다른 도메인에서 안전하게 사용할 수 있도록 해줌.
그러나 잘못 구성된 CORS 정책은 보안 취약점을 초래할 수 있기 때문에 설정에 주의가 필요함.
728x90