http协议
HTTP 即超文本传输协议,是一种获取网络资源 (例如图像、HTML 文档) 的应用层协议,它是互联网数据通信的基础,由请求和响应构成。通常,首先客户端会发送 HTTP 请求(在请求报文中会指定资源的 URL),然后用传输层的 TCP 建立连接,最后服务器响应请求做出应答,回传数据报文
websocket协议
websocket 是 htm15 提供的一种浏览器与服务器进行全双工通讯的网络技术,属于应层协议。它基于TCP 传输协议,并复用 HTTP 的握手通道,浏览器和服务器只需要完成-次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输
Websocket原理:客户端 websocket 服务器通知 (notify) 一个带有所有接收者ID 的事件,服务器接收后立即通知所有活跃的客户端,只有 ID 在接收者D 序列中的客户端才会处理这个事件。
Websocket 特点:
A.支持双向通信,实时性更强
B.可以发送文本,也可以发送二进制数据
建立在TCP 协议之上,服务端的实现比较容易c.D数据格式比较轻量,性能开销小,通信高效。
E没有同源限制,客户端可以与任意服务器通信F.协议标识符是 ws(如果加密,则为 wss),服务器网址就是 URL。G.与HTTP 协议有良好的兼容性,默认端口也是 80 和443,并且握手阶段采用 HTTP 协议因此握手时不容易屏蔽,能通过各种HTTP 代理服务器
HTTP(Hypertext Transfer Protocol)和WebSocket是两种不同的协议,它们有一些关键的区别:
1、连接性:
HTTP: 是一种无状态协议,每个请求和响应之间是独立的,没有持久的连接。当客户端需要获取新的数据时,需要发起一个新的HTTP请求。
WebSocket: 是一种全双工协议,它在客户端和服务器之间建立了一个持久的连接。一旦建立连接,它允许双方在任何时候都能互相发送数据。
2、通信方式:
HTTP: 是一种请求-响应协议。客户端发送请求,服务器返回响应,然后连接就会关闭。这意味着服务器不能主动向客户端推送数据;客户端需要定期轮询或等待新的数据。
WebSocket: 提供了双向通信的能力,允许服务器和客户端之间实时地推送数据。这样可以避免轮询,从而减少延迟。
3、头部开销:
HTTP: 每个HTTP请求和响应都需要一系列的头部信息,这可能导致较大的开销,特别是在频繁的短连接中。
WebSocket: 由于建立了持久连接,头部信息只需要在连接建立时发送一次,之后只需要发送实际的数据,减小了通信的开销。
4、安全性:
HTTP: 在HTTP中,如果要保证数据的安全传输,通常需要使用TLS/SSL(HTTPS)协议。
WebSocket: 与HTTP一样,WebSocket可以通过TLS/SSL进行安全传输,但也可以在非加密的连接上工作。在生产环境中,通常建议使用加密的WebSocket连接以确保数据的机密性和完整性。
5、应用场景:
HTTP: 适用于客户端请求-服务器响应的场景,例如网页的加载和提交表单等。
WebSocket: 适用于实时性要求较高、双向通信的应用,比如在线聊天、实时协作编辑、实时数据监控等。
总的来说,HTTP和WebSocket都有它们适用的场景,选择哪个取决于应用的需求。在某些情况下,它们也可以结合使用,例如在HTTP中嵌入WebSocket连接。