当前位置:首页 >数据库 >为什么有了HTTP,还需要WebSocket协议? 正文

为什么有了HTTP,还需要WebSocket协议?

来源:开发者社区   作者:网络安全   时间:2025-11-26 22:51:54
Http特点

HTTP是需W协议基于TCP协议的 ,同一时间里 ,需W协议客户端和服务器只能有一方主动发数据,需W协议是需W协议半双工通信。通常 ,需W协议打开某个网页 ,需W协议我们每点击一次网页上的需W协议某个选项,前端就会发送一次HTTP请求 ,需W协议网站返回一次HTTP响应。需W协议这种由客户端主动请求 ,需W协议服务器响应的需W协议方式满足大部分网页的功能场景 。建站模板

但这种情况下 ,需W协议服务器不会主动给客户端发消息。需W协议而类似网页游戏这样的需W协议场景,是需W协议需要客户端和服务器之间互相主动发大量数据。http就不适用了 。

WebSocket是什么?

WebSocket 是一种用于在单个 TCP 连接上进行全双工通信的网络协议。它使用类似于 HTTP 的握手来建立连接 ,然后使用单独的持久连接来进行通信。

这种方式使得 WebSocket 可以在浏览器和服务器之间进行实时通信,免费模板而不需要多次发送 HTTP 请求来获取数据 。这意味着连接是持久的 ,它一直保持打开 ,直到有一方主动关闭连接。这使得 WebSocket 非常适合用于实时应用程序,因为它不需要不断地建立和关闭连接。

WebSocket怎样建立连接?

WebSocket 连接通常在客户端(例如浏览器)和服务器之间建立  。客户端发送一个 HTTP 请求来建立连接 ,然后服务器返回一个确认消息 ,表示已建立连接 。之后,客户端和服务器可以通过这个连接进行双向通信 。客户端可以向服务器发送消息 ,服务器也可以向客户端发送消息 。高防服务器消息可以是任意的字节数组 ,并且可以使用任意的格式进行编码。

WebSocket的实际用途

最常见的用途是在实时应用程序开发中 ,它有助于在客户端持续显示数据 。由于后端服务器不断发回此数据 ,WebSocket 允许在已打开的连接中不间断地推送或传输此数据,使此类数据传输更快  ,并利用了应用程序的性能 。模板下载

聊天应用程序开发人员在一次性交换 、发布 、广播消息等操作中调用 WebSocket 。由于使用相同的 WebSocket 连接来发送或接收消息,因此通信变得简单、轻量 、快捷 。在进行游戏应用程序开发的同时  ,服务器必须不间断地接收数据,而不要求刷新 UI 。WebSocket在不影响游戏应用程序 UI 的情况下实现了这一目标 。

从上述几个示例中 ,我们大概知道了在什么情况下不太适合使用  ,亿华云例如数据交互周期很长,甚至几小时一次的情况或只需要一次性处理数据时,不应采用 WebSocket协议。在这些情况下 ,使用 HTTP 协议是一个明智的选择。由于 HTTP 和 WebSocket 都用于应用程序通信,因此人们常常感到困惑,很难从这两者中选择一个。

WebSocket 与 HTTP 的选择

WebSocket 是一种框架双向协议 。与此相反 ,HTTP 是服务器租用一种单向协议,作用于 TCP 协议之上  。由于WebSocket协议能够支持不间断的数据传输,因此主要用于实时应用程序开发。

在 WebSocket 中,通信发生在两端,这使其成为更快的协议。在 HTTP 中 ,连接是在一端建立的,这使得它比 WebSocket 有点慢 。WebSocket 使用统一的 TCP 连接  ,需要一方终止连接。在它发生之前 ,连接保持活动状态 。HTTP 需要为单独的请求建立不同的连接。请求完成后  ,连接会自动断开。

Http 长轮询

HTTP 请求发出后,一般会给服务器留一定的时间做响应,比如 3 秒 ,规定时间内没返回,就认为是超时 。

如果将 HTTP 请求将超时设置的很大,比如 30 秒 ,在这 30 秒内只要服务器收到了扫码请求 ,就立马返回给客户端网页。如果超时,那就立马发起下一次请求。

这样就减少了 HTTP 请求的个数,并且由于大部分情况下,用户都会在某个 30 秒的区间内做扫码操作,所以响应也是及时的。

总结

在 HTTP/1.1 里 ,只要客户端不问 ,服务端就不答 。基于这样的特点,对于登录页面这样的简单场景,可以使用定时轮询或者长轮询的方式实现服务器推送(comet)的效果。

对于客户端和服务端之间需要频繁交互的复杂场景 ,比如网页游戏,都可以考虑使用 WebSocket 协议。

标签:

责任编辑:IT资讯