HTTP와 WebSocket의 차이점
OSI 네트워크 계층 모델에 따르면 IP는 네트워크 계층 프로토콜, TCP는 전송 계층 프로토콜, HTTP는 애플리케이션 계층 프로토콜입니다. 세 가지 중 SPDY와 WebSocket은 모두 HTTP와 관련된 프로토콜이고 TCP는 HTTP의 기본 프로토콜입니다.
WebSocket은 HTTP 폴링을 사용하는 웹 페이지와 서버 간의 양방향 통신 메커니즘을 대체하기 위해 네트워크 프로토콜 및 API를 포함하여 TCP 연결을 사용하는 양방향 통신 메커니즘을 제공합니다.
기본적으로 WebSocket은 HTTP 프로토콜에만 국한되지 않지만 기존 HTTP 인프라, 프록시, 필터링, 인증 등이 많기 때문에 WebSocket은 HTTP 및 HTTPS에서 포트를 빌려옵니다.
HTTP 포트를 사용하기 때문에 TCP 연결이 이루어진 후의 핸드셰이크 메시지는 HTTP를 기반으로 하며, 서버에서는 HTTP 프로토콜인지 WebSocket 프로토콜인지 판단합니다. WebSocket 연결을 설정하고 닫을 때의 핸드셰이크를 제외하면 데이터 전송은 HTTP와 관련이 없습니다.
WebSocket에는 자체 프레임 프로토콜 세트도 있습니다.