WebSocket和HTTP协议的区别

文章类型:其他

发布者:hp

发布时间:2024-12-05

一:概述

WebSocket和HTTP在我们开发过程中,经常使用,有着不同的用途,那么,他们的各自使用是怎么样的呢?

二:内容

(一)WebSocket

1:定义:

(1):WebSocket是一种实时通信协议,它允许客户端和服务器之间进行双向通信,而不需要每次请求都重新建立连接。

(1):WebSocket是HTML5中的新功能,它建立在HTTP协议之上,通过握手协议来建立持久化的连接。

(3):客户端和服务器之间的数据交换是以二进制形式进行的。

(二)HTTP

1:定义

(1):HTTP全称是“超文本传输协议”(Hypertext Transfer Protocol)

(2):它建立在TCP协议之上,通过请求-响应模式来传输数据。

(3):在HTTP中,客户端发送一个请求到服务器,服务器接收到请求后,返回相应的响应

(4):HTTP是一种无状态协议,每个请求-响应周期都是独立的

三:区别

(一) 含义不同

  1:websocket是一种在单个TCP连接上进行全双工通信的协议

  2:http:超文本传输协议,是一个简单的请求-响应协议,它通常运行在TCP上,是单向的通信协议

(二) 连接方式不同

  1:websocket=>是需要浏览器和服务器握手进行建立连接的

  2:http=>是浏览器发起向服务器的连接,服务器预先并不知道这个连接

(三) 连接长度不同

  1:websocket=>是持久连接

  2:http是短连接(http是可以通过Ajax一直发送请求和长轮循保持一段时间内的连接),但本质上还是短连接

(四) 连接状态不同

  1:websocket=>是有状态的双向连接

  2:http对应的是http / https

四:相同点

 1:都是基于TCP协议

 2:websocket是基于http的,他们的兼容性都很好

 3:在连接的建立过程中,对错误的处理方式相同

 4:都使用Request/Response模型进行连接的建立

 5:都可以在网络中传输数据

五:拓展

(一)WebSocket和HTTP长轮询的区别

1:HTTP长轮询:客户端发起请求,服务端阻塞,不会立即返回,HTTP长轮询需要处理timeout,即timeout之后重新发起请求

2:WebSocket:客户端可发起请求,服务端也可发起请求