WebSocket is a computer communications protocol, providing a simultaneous two-way communication channel over a single Transmission Control Protocol (TCP) connection. The WebSocket protocol was standardized by the IETF as RFC 6455 in 2011. The current specification allowing web applications to use this protocol is known as WebSockets.[1] It is a living standard maintained by the WHATWG and a successor to The WebSocket API from the W3C.[2]
WebSocket is distinct from HTTP used to serve most webpages. Although they are different, RFC 6455 states that WebSocket "is designed to work over HTTP ports 443 and 80 as well as to support HTTP proxies and intermediaries", thus making it compatible with HTTP. To achieve compatibility, the WebSocket handshake uses the HTTP Upgrade header[3] to change from the HTTP protocol to the WebSocket protocol.
The WebSocket protocol enables full-duplex interaction between a web browser (or other client application) and a web server with lower overhead than half-duplex alternatives such as HTTP polling, facilitating real-time data transfer from and to the server. This is made possible by providing a standardized way for the server to send content to the client without being first requested by the client, and allowing messages to be passed back and forth while keeping the connection open. In this way, a two-way ongoing conversation can take place between the client and the server. The communications are usually done over TCP port number 443 (or 80 in the case of unsecured connections), which is beneficial for environments that block non-web Internet connections using a firewall. Additionally, WebSocket enables streams of messages on top of TCP. TCP alone deals with streams of bytes with no inherent concept of a message. Similar two-way browser–server communications have been achieved in non-standardized ways using stopgap technologies such as Comet or Adobe Flash Player.[4]
Most browsers support the protocol, including Google Chrome, Firefox, Microsoft Edge, Internet Explorer, Safari and Opera.[5]
The WebSocket protocol specification defines ws (WebSocket) and wss (WebSocket Secure) as two new uniform resource identifier (URI) schemes[6] that are used for unencrypted and encrypted connections respectively. Apart from the scheme name and fragment (i.e. # is not supported), the rest of the URI components are defined to use URI generic syntax.[7]
^Ian Fette; Alexey Melnikov (December 2011). "Relationship to TCP and HTTP". RFC 6455 The WebSocket Protocol. IETF. sec. 1.7. doi:10.17487/RFC6455. RFC 6455.
^"Adobe Flash Platform – Sockets". help.adobe.com. Retrieved 2021-07-28. TCP connections require a "client" and a "server". Flash Player can create client sockets.
^"The WebSocket API (WebSockets)". MDN Web Docs. Mozilla Developer Network. 2023-04-06. Archived from the original on 2021-07-28. Retrieved 2021-07-26.
supports the WebSocket protocol by providing the WebSocket API for the reactive application. The @EnableWebSocket annotation gives Websocket request processing...
The WebSocket protocol is implemented in different web browsers, web servers, and run-time environments and libraries acting as clients or servers. The...
virtual servers IPv6-compatible WebSockets since 1.3.13, including acting as a reverse proxy and do load balancing of WebSocket applications. HTTP/1.1 Upgrade...
and AngularJS "Can is use websockets ?". Websocket polyfills "Moreover, we compared WAMP with other registered WebSocket subprotocols (MBWS, SOAP and...
Language, and WebSocket technologies. It provides a "pure Java" HTTP web server environment in which Java code can also run. Thus it is a Java web application...
Genesis Socket (film), a 2007 film Socket (cybersecurity), a US based software supply chain security company IC socket (disambiguation) Websocket This disambiguation...
Protocol (ICMP). List of TCP and UDP port numbers Promiscuous traffic WebSocket Cisco Networking Academy Program, CCNA 1 and 2 Companion Guide Revised...
A dynamic web page is a web page constructed at runtime (during software execution), as opposed to a static web page, delivered as it is stored. A server-side...
Socket A (also known as Socket 462) is a zero insertion force pin grid array (PGA) CPU socket used for AMD processors ranging from the Athlon Thunderbird...
EE specifications rely on it; Jakarta WebSocket: API specification that defines a set of APIs to service WebSocket connections; Jakarta Faces: a technology...
Optional Compass / Sass support for CSS design Optional WebSocket support with Spring Websocket On the server side: Spring Boot Spring Security (including...
in a WebSocket format and disguised with an XOR cipher. A free software implementation of flash proxies is available. It uses JavaScript, WebSocket, and...
processes under one application pool, using soft or hard affinity and more. WebSocket Protocol Support Server Name Indication (SNI): SNI is an extension to...
protocol's primary form of data transport is the use of a standardized kind of WebSocket server called a Relay. Each user has a cryptographic keypair. Data on...
between two related streams of data, such as an audio and a video stream in a web-conferencing application. Therefore, the session layer is commonly implemented...