您现在的位置是:系统运维 >>正文
为什么有了HTTP,还需要WebSocket协议?
系统运维48418人已围观
简介Http特点HTTP是基于TCP协议的,同一时间里,客户端和服务器只能有一方主动发数据,是半双工通信。通常,打开某个网页,我们每点击一次网页上的某个选项,前端就会发送一次HTTP请求,网站返回一次HT ...
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 连接来发送或接收消息 ,因此通信变得简单、轻量 、快捷 。在进行游戏应用程序开发的同时,服务器必须不间断地接收数据,而不要求刷新 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 协议 。
Tags:
转载:欢迎各位朋友分享到网络,但转载请说明文章出处“算法与编程”。http://www.bzli.cn/html/222a7899699.html
相关文章
分布式系统安全之分布式系统协调资源聚类
系统运维与P2P系统的分散控制相反,存在许多分布式系统,其中分布式资源和服务之间的交互是使用各种协调机制编排的,这些机制提供了逻辑集中和协调的系统或服务的错觉。协调可以只是调度程序/资源管理器、离散协调器或协 ...
【系统运维】
阅读更多湘江鲲鹏加入昇腾万里伙伴计划,与华为续写合作新篇章
系统运维2022年7月2日,湘江鲲鹏与华为举行昇腾万里伙伴授牌仪式。为推进人工智能产业繁荣发展,加速数字化进程携手共进。华为昇腾计算业务总裁张迪煊,湘江鲲鹏总裁向静代表双方完成授牌仪式。拓维信息董事长、湘江鲲 ...
【系统运维】
阅读更多记一次利用GrayLog实现采集与备份云服务器Web访问日志的实现过程
系统运维一、业务场景及主要需求如图所示:采集AWS云服务器(Web服务器)的nginx访问日志,并进行日志分析。由于AWS云Web服务器(Web服务器)上磁盘空间有限,nginx日志做了logrotate轮转 ...
【系统运维】
阅读更多