HTTP和WebSocket是两种不同的协议。WebSocket在建立握手时,数据是通过HTTP传输的,但是建立之后传输数据通信是不需要HTTP协议的。
- 相同点
-
都是一样基于TCP连接,都是可靠性传输协议。
-
都是应用层协议。
- 不同点
-
HTTP是单向的,客户端发送请求,服务器发送响应,请求以HTTP或HTTPS的形式发送。WebSocket是双向的,在客户端-服务器通信的场景中使用的全双工协议,与HTTP不同,它以ws://或wss://开头。
-
HTTP协议是无状态的,每个HTTP或HTTPS请求每次都会新建与服务器的连接,并且在获得响应后,连接将自行终止。Websocket是一个有状态协议,这意味着客户端和服务器之间的连接将保持活动状态,直到被任何一方(客户端或服务器)终止。在通过客户端和服务器中的任何一方关闭连接之后,连接将从两端终止。
-
HTTP协议传输的数据通常是文本或二进制数据。WebSocket可以传输任意格式的数据,包括文本、二进制、JSON等。
- 应用
HTTP协议常用于一次性、不会高频更新的数据传输。
Websocket协议常用于高频更新的数据传输。