1. Handshaking 과 Preflight의 차이 (HTTP 1.1 기준)
- Http 프로토콜을 통해 애플리케이션의 메시지를 전송하기 전에 먼저 서로의 통신 정보를 확인하기 위해 먼저 통신 정보를 보내는 과정을 Handshaking이라고 한다. 그렇다면 마찬가지로 서버로 요청을 보내기전에 option이라는 요청을 보내는 preflight 와 같은 작용일까? 다르다면 그 이유는 무엇인가?
- 언뜻 보면 클라이언트와 서버를 잇는 전송계층(transport layer)에서 이뤄지는 사전의 요청들 같지만, 두 개는 엄연히 다른 것이다. 크게 보면 preflight의 경우 웹 개발의 cors와 관련된 것이고, hanshaking의 경우는 프로세스상의 프로토콜을 맞추고 네트워크상 보안을 위해 행하는 것이다.
- preflight의 경우 서버에 클라이언트가 실 요청을 보내기 전에 해당 요청이 유효한지 헤더에 options라는 메서드를 넣어 확인하는 것이다 → 매 api 요청마다 보낸는 것을 볼 수 있다.
- handshaking의 경우 TCP 연결 전에 하는 것으로 서로의 전송 상태와 정보들을 교환하는 것을 말한다.
→ 두 종단 시스템이 서로의 존재를 인식하고 통신을 설정하는 과정으로 볼 수 있다.
- 즉, 연결 지속형이 기본인 http 1.1에서는 서로간 tcp 연결 시 한 번의 핸드 셰이킹 과정이 이뤄지고 preflight는 지속적으로 요청하는 것을 볼 수 있다.
- 순서 : handshaking → preflight
태형이형
우용이
창희