티스토리 뷰


웹에서 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
댓글
공지사항