티스토리 뷰
웹에서 preflight가 발생하는 4가지는 무엇이 있는지 알아보도록 하겠습니다 : )
preflight란 CORS상황에서 보안을 확인하기 위해 브라우저가 제공하는 기능입니다.
preflight는 미리 통신을 함으로써 문제가 있는 요청에 대해 일부러 ERROR를 발생시킵니다.
요새는 크롬 개발자도구에서 preflight를 표기해줘 어디서 preflight가 일어났는지 확인하기 더 쉬워졌어요 !
그렇다면 preflight는 어떤 상황에서 일어나게 되는 것일까요 ?
1. OPTIONS
브라우저에서 OPTIONS를 던져 해당 사이트에서 사용가능한 methos정보를 가져오게 될때 preflight가 일어납니다.
따라서 개발자는 실제 원하는 요청에 대해 작성해주면 되고 따로 OPTIONS request를 보내는 코드를 작성하지 않아도 됩니다.
*methods : GET, POST, OPTIONS, HEAD, PUT, DELETE
2. Simple Request ( 단순요청 )
사용자 정의 Header 정보를 추가, 수정하게 되면 단순요청에 preflight가 발생하게 됩니다.
예외적으로 사용자 정의 Header가 content-type일때 type이 text/plain, multipart/form-data, x-www-form-urlencoded 일 경우엔 preflight가 일어나지 않습니다.
*사용자 정의 Header : Accept, Accept-language, content-language, content-type
* Simple Request : GET, POST, HEAD
3. Simple Request를 제외한 나머지 요청
4. 쿠키 세팅
내 쿠키를 다른 써드파티에 보내고 싶을때 with Credential을 이용하게 되는데 이때 preflight가 발생하게 됩니다.
'Frontend > Web' 카테고리의 다른 글
브라우저의 기본 구조 (0) | 2022.01.25 |
---|---|
브라우저의 동작 과정 (0) | 2022.01.24 |
웹에서 메모리 최적화 (0) | 2021.01.24 |
# 아마존 S3 (0) | 2019.10.31 |
# sessionStorage / localStorage (0) | 2019.10.31 |