WebSocket은 단일 TCP 연결을 통한 전이중 통신을 위한 프로토콜입니다. WebSocket 통신 프로토콜은 2011년 IETF에 의해 표준 RFC 6455로 지정되었으며, RFC7936으로 보완되었습니다. WebSocket API도 W3C에서 표준으로 지정되었습니다.
WebSocket은 클라이언트와 서버 간의 데이터 교환을 더 간단하게 만들어 서버가 클라이언트에 데이터를 적극적으로 푸시할 수 있도록 합니다. WebSocket API에서는 브라우저와 서버가 핸드셰이크만 완료하면 되며, 양방향 데이터 전송을 위해 둘 사이에 직접 지속적인 연결이 생성될 수 있습니다.
제어 오버헤드가 적습니다. 연결이 이루어진 후 서버와 클라이언트 간에 데이터를 교환할 때 프로토콜 제어에 사용되는 패킷 헤더는 상대적으로 작습니다. 확장이 없으면 서버-클라이언트 콘텐츠의 경우 헤더 크기는 2~10바이트(패킷 길이와 관련)이며, 클라이언트-서버 콘텐츠의 경우 추가 헤더를 4바이트 마스크에 추가해야 합니다. 매번 완전한 헤더를 전달하는 HTTP 요청과 비교하면 이 오버헤드가 크게 줄어듭니다.
더 강력해진 실시간 성능. 프로토콜은 전이중이므로 서버는 언제든지 클라이언트에 데이터를 적극적으로 보낼 수 있습니다. 서버가 응답하기 전에 클라이언트가 요청을 시작할 때까지 기다려야 하는 HTTP 요청과 비교할 때, Comet과 같은 유사한 긴 폴링 방법과 비교해도 지연이 훨씬 적습니다. 시간.
연결 상태를 유지하세요. HTTP와 달리 Websocket은 먼저 연결을 생성해야 하므로 상태 저장 프로토콜이 되며 후속 통신 중에 일부 상태 정보가 생략될 수 있습니다. HTTP 요청은 각 요청에 상태 정보(예: 신원 인증 등)를 전달해야 할 수도 있습니다.
더 나은 바이너리 지원. Websocket은 HTTP보다 바이너리 콘텐츠를 더 쉽게 처리할 수 있는 바이너리 프레임을 정의합니다.
확장 기능을 지원할 수 있습니다. Websocket은 확장을 정의하며 사용자는 프로토콜을 확장하고 일부 사용자 정의된 하위 프로토콜을 구현할 수 있습니다. 예를 들어 일부 브라우저는 압축 등을 지원합니다.
더 나은 압축 효과. HTTP 압축과 비교하여 Websocket은 적절한 확장 지원을 통해 이전 콘텐츠의 컨텍스트를 상속할 수 있으며 유사한 데이터를 전송할 때 압축률을 크게 향상시킬 수 있습니다.
WebSocket은 TCP에서 생성된 독립 프로토콜입니다.
Websocket은 HTTP/1.1 프로토콜의 101 상태 코드를 통해 핸드셰이크를 수행합니다.
웹소켓 연결을 생성하려면 브라우저를 통해 요청을 해야 하며, 그러면 서버가 응답합니다. 이 프로세스를 흔히 "핸드쉐이킹"이라고 합니다.
위 내용은 웹소켓은 무슨 뜻인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!