← 질문 목록
#280깊이 0
브라우저가 요청을 미리 한 번 더 보내는 이유는?
보내도 되는 요청인지 서버에 먼저 묻기 때문이다. 답을 받은 뒤에야 진짜 요청을 보낸다.
- 1. 브라우저에서 서버로: 이 요청을 보내도 되냐고 묻는다
- 2. 서버에서 브라우저로: 허용하는 출처와 메서드를 답한다
- 3. 브라우저에서 서버로: 맞으면 진짜 요청을 보낸다
- 4. 서버에서 브라우저로: 응답에도 허용 출처를 붙인다
막는 쪽은 브라우저다. 단순한 요청은 서버까지 가서 처리되고, 브라우저가 응답만 못 읽게 막는다. 그래서 서버 로그에는 남는다.
먼저 묻는 경우는 다르다. 사전 요청이 거절되면 진짜 요청은 아예 안 간다. GET·HEAD·POST이면서 허용된 헤더와 본문 종류만 쓸 때 이 단계를 건너뛴다.
application/json으로 보내거나 Authorization을 붙이면 먼저 묻는다. 자격 증명까지 보내려면 허용 출처에 *를 못 쓰고 정확한 주소를 적어야 한다.