0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

WebSocket有什么优点

Wildesbeast 来源:今日头条 作者:深视野 2020-02-15 15:53 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范。WebSocket API也被W3C定为标准。HTML5开始提供WebSocket协议的支持。

WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。

WebSocket连接过程

客户端通过HTTP协议向服务端发送握手,服务端向客户端返回ACK,此时握手成功,建立连接并维持该连接;

后面服务端和客户端就可以基于建立的连接进行双向通信,直到连接关闭。

2. WebSocket与HTTP对比

HTTP WebSocket
通信方式 单工 全双工
端口 80/443 80/443
协议 HTTP/HTTPS WS/WSS
跨域问题
网络开销 - 较小

优点

较少的控制开销。在连接创建后,服务器和客户端之间交换数据时,用于协议控制的数据包头部相对较小。在不包含扩展的情况下,对于服务器到客户端的内容,此头部大小只有2至10字节(和数据包长度有关);对于客户端到服务器的内容,此头部还需要加上额外的4字节的掩码。相对于HTTP请求每次都要携带完整的头部,此项开销显著减少了。

更强的实时性。由于协议是全双工的,所以服务器可以随时主动给客户端下发数据。相对于HTTP请求需要等待客户端发起请求服务端才能响应,延迟明显更少;即使是和Comet等类似的长轮询比较,其也能在短时间内更多次地传递数据。

保持连接状态。与HTTP不同的是,Websocket需要先创建连接,这就使得其成为一种有状态的协议,之后通信时可以省略部分状态信息。而HTTP请求可能需要在每个请求都携带状态信息(如身份认证等)。

更好的二进制支持。Websocket定义了二进制帧,相对HTTP,可以更轻松地处理二进制内容。

可以支持扩展。Websocket定义了扩展,用户可以扩展协议、实现部分自定义的子协议。如部分浏览器支持压缩等。

更好的压缩效果。相对于HTTP压缩,Websocket在适当的扩展支持下,可以沿用之前内容的上下文,在传递类似的数据时,可以显著地提高压缩率。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    13

    文章

    10096

    浏览量

    90901
  • HTTP
    +关注

    关注

    0

    文章

    531

    浏览量

    34860
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1418

    浏览量

    83029
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    电化学气体传感器中,三电极与二电极相比,哪些具体优点

    电化学气体传感器中,三电极与二电极相比,哪些具体优点
    发表于 12-02 17:03

    晶圆湿法刻蚀技术哪些优点

    晶圆湿法刻蚀技术作为半导体制造中的重要工艺手段,具有以下显著优点:高选择性与精准保护通过选用特定的化学试剂和控制反应条件,湿法刻蚀能够实现对目标材料的高效去除,同时极大限度地减少对非目标区域(如掩膜
    的头像 发表于 10-27 11:20 196次阅读
    晶圆湿法刻蚀技术<b class='flag-5'>有</b>哪些<b class='flag-5'>优点</b>

    一文吃透WebSocket:智能物联网通信的入门与实战全攻略!

    想在智能物联网项目中实现设备与平台的实时“对话”?WebSocket是你的最佳选择。本文作为一份完整的学习与实战攻略,从基础概念讲起,逐步深入到编码实践,涵盖协议细节、开发框架与常见问题
    的头像 发表于 10-15 18:16 166次阅读
    一文吃透<b class='flag-5'>WebSocket</b>:智能物联网通信的入门与实战全攻略!

    智能物联网实时通信实战:WebSocket技术解析 !

    在设备海量接入、数据高频交互的物联网时代,WebSocket以其低延迟、双向通信的优势脱颖而出。本文全面解析其在智能物联网中的技术实现路径,涵盖协议分析、服务端/客户端开发、心跳保活与错误处理,并
    的头像 发表于 10-15 18:16 821次阅读
    智能物联网实时通信实战:<b class='flag-5'>WebSocket</b>技术解析 !

    十大北京软件开发公司推荐:哪些优点和缺点

    十大北京软件开发公司推荐:哪些优点和缺点
    的头像 发表于 10-04 09:44 1152次阅读
    十大北京软件开发公司推荐:<b class='flag-5'>有</b>哪些<b class='flag-5'>优点</b>和缺点

    五大电磁频谱管理监测系统软件:哪些优点和缺点

    五大电磁频谱管理监测系统软件:哪些优点和缺点
    的头像 发表于 09-28 16:50 575次阅读
    五大电磁频谱管理监测系统软件:<b class='flag-5'>有</b>哪些<b class='flag-5'>优点</b>和缺点

    五大海上安全事件应急处置系统:哪些优点和缺点

    五大海上安全事件应急处置系统:哪些优点和缺点
    的头像 发表于 09-04 17:09 727次阅读
    五大海上安全事件应急处置系统:<b class='flag-5'>有</b>哪些<b class='flag-5'>优点</b>和缺点

    PD快充芯片U8621的优点哪些

    电源芯片方案的成本优化可从芯片选型、模块化设计、外围元件减少等方面实现。采用高集成度电源芯片可大幅减少外围元件数量。今天推荐的PD快充芯片U8621具全负载高效率、低空载损耗、低EMI干扰和高EMS抗干扰、极少外围应用元件等优点,还有搭配的同步整流芯片介绍!
    的头像 发表于 07-21 16:34 678次阅读

    薄膜电容器的优点哪些

    薄膜电容器虽然理论上有很多种材质,我们实际生产时主要有CBB金属化聚丙烯薄膜电容和CL金属化聚酯薄膜电容两种类型,它是电路上极重要的一类电子元器件,大部分电路都离不开它们,薄膜电容器的优点哪些,你真的知道吗?
    的头像 发表于 07-21 16:03 827次阅读

    使用 N-MOSFET 作为功率吸收路径哪些优点

    CCG8 使用 GPIO 来控制 FET 栅极驱动器的功率吸收路径, 我可以使用 P-MOSFET 作为电源接收路径吗? 使用 N-MOSFET 作为功率吸收路径哪些优点
    发表于 05-28 06:51

    AI制造系统哪些优点

    随着科技的飞速发展,人工智能(AI)已经渗透到各个行业,制造业也不例外。AI制造系统正在逐步改变传统的生产模式,带来前所未有的效率提升和成本优化。本文将探讨AI制造系统的几个主要优点,并简要介绍
    的头像 发表于 04-16 10:04 824次阅读
    AI制造系统<b class='flag-5'>有</b>哪些<b class='flag-5'>优点</b>

    ESB 协议什么优点呢?

    Enhanced ShockBurst (ESB)协议具有以下优点: 低功耗通信 - ESB提供低功耗的无线通信,这对于电池供电的IoT设备尤为重要。ESB用户指南指出:“ESB provides
    的头像 发表于 03-24 14:50 647次阅读

    日本机房托管和自建数据中心相比哪些优点

    日本机房托管和自建数据中心相比哪些优点,日本机房托管与自建数据中心相比,具有以下优点,主机推荐小编为您整理发布日本机房托管和自建数据中心相比哪些
    的头像 发表于 03-05 09:42 535次阅读

    AWTK-WEB 快速入门(6) - JS WebSocket 应用程序

    WebSocket可以实现双向通信,适合实时通信场景。本文介绍一下使用Javacript语言开发AWTK-WEB应用程序,并用WebSocket与服务器通讯。用AWTKDesigner新建一个应用程
    的头像 发表于 02-26 11:42 642次阅读
    AWTK-WEB 快速入门(6) - JS <b class='flag-5'>WebSocket</b> 应用程序

    AWTK-WEB 快速入门(5) - C 语言 WebSocket 应用程序

    导读WebSocket可以实现双向通信,适合实时通信场景。本文介绍一下使用C语言开发AWTK-WEB应用程序,并用WebSocket与服务器通讯。用AWTKDesigner新建一个应用程序先安装
    的头像 发表于 02-19 11:49 899次阅读
    AWTK-WEB 快速入门(5) - C 语言 <b class='flag-5'>WebSocket</b> 应用程序