iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >WebSocket有什么优点
  • 895
分享到

WebSocket有什么优点

2023-06-19 12:06:26 895人浏览 八月长安
摘要

本篇内容主要讲解“websocket有什么优点”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“WEBSocket有什么优点”吧!为什么要有WebSocket这个技术大家都知道,html页面在刚刚开

本篇内容主要讲解“websocket有什么优点”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习WEBSocket有什么优点”吧!

为什么要有WebSocket这个技术

大家都知道,html页面在刚刚开始出现的时候是静态的,不能够进行交互,后来有了javascript,在一定程度上解决了这个问题,但是JavaScript刚出现的时候并不能和服务端进行交互,直到ajax的出现。Ajax有效的解决了页面和服务端进行交互的问题,不过Ajax有一个问题,就是所有的请求都必须由客户端发起,服务端进行响应,如果服务端有最新的消息,难以即时的发送到客户端去,在WebSocket技术出现之前,为了让客户端能够即时的获取服务端的数据,一般采用如下三种方案:

轮询

这是最简单的一种解决方案, 就是客户端在固定的时间间隔下(一般是1秒)不停的向服务器端发送请求,查看服务端是否有最新的数据,服务端如果有最新的数据则返回给客户端,服务端如果没有则返回一个空的JSON或者xml文档,这种方式的实现起来简单,但是弊端也很明显,就是会有大量的无效请求,服务端的资源被大大的浪费了。

长连接

长连接有点类似于轮询,不同的是服务端不是每次都会响应客户端的请求,只有在服务端有最新数据的时候才会响应客户端的请求,这种方式很明显会节省网络资源和服务端资源,但是也存在一些问题,比如:

如果浏览器在服务器响应之前有新数据要发送就只能创建一个新的并发请求,或者先尝试断掉当前请求然后再创建新的请求。
2.tcpHttp规范中都有连接超时一说,所以所谓的长连接并不能一直持续,服务端和客户端的连接需要定期的连接和关闭再连接,当然也有一些技术能够延长每次连接的时间,这是题外话。

Applet和Flash

Applet和Flash都已经是明日黄花了,不过这两个技术在当年除了可以让我们的HTML页面更加绚丽之外,还可以解决消息推送问题。在Ajax这种技术去实现全双工通信已经陷入困境的时候,开发者试图用Applet和Flash来模拟全双工通信,开发者可以创建一个只有1个像素点大小的普通透明的Applet或者Flash,然后将之内嵌在页面中, 然后这个Applet或者Flash中的代码创建出一个Socket连接,这种连接方式消除了HTTP协议中的各种限制,当服务器有消息发送到客户端的时候,开发者可以在Applet或者Flash中调用JavaScript函数,并将服务器传来的消息传递给JavaScript函数,然后更新页面,当浏览器有数据要发送给服务器的时候,也一样,通过Applet或者Flash来传递。这种方式真正的实现了全双工通信,不过也有问题,如下:

浏览器必须能够运行Java或者Flash
2.无论是Applet还是Flash都存在安全问题
3.随着HTML5在标准在浏览器中广泛支持,Flash下架已经被提上日程(
终于要放弃,Adobe宣布2020年正式停止支持Flash/http://tech.163.com/17/0726/07/CQ8M4HT200097U7T.html)

WebSocket有哪些特点

既然上面这些技术都不行,那么谁行?当然是我WebSocket了!

HTTP/1.1的升级特性

要说WebSocket协议,我们得先来说说HTTP协议的一个请求头,事实上,所有的HTTP客户端(浏览器、移动端等)都可以在请求头中包含Connection:Upgrade,这个表示客户端希望升级请求协议,那么希望升级成什么样的协议呢?我们需要在Upgrade头中指定一个或者多个协议的列表,当然这些协议必须兼容HTTP/1.1协议。服务器收到请求之后,如果接受升级请求,那么将会返回一个101的状态码,表示转换请求协议,同时在响应的Upgrade头中使用单个值,这个单个值就是请求协议列表中服务器支持的第一个协议(即请求头的Upgrade字段中列出来的协议列表中服务器支持的第一个协议)。
HTTP升级最大的好处是最终使我们可以使用任意的协议,在升级握手完成之后,它就不再使用HTTP连接了,我们甚至可以在升级握手完成之后建立一个Socket连接,理论上我们可以使用HTTP升级在两个端点之间使用任何自己设计的协议,进而创建出各种各样的TCP通信,当然浏览器不会让开发者随意去这么做,而是要指定某些协议,WebSocket应运而生!
我们来看一个截图:
WebSocket有什么优点

使用HTTP/1.1升级的WebSocket协议

OK,了解了HTTP/1.1协议的升级特性之后,我们再来详细看看整个过程是怎么样的?
一个WebSocket请求首先使用非正常的HTTP请求以特定的模式访问一个URL,这个URL有两种模式,分别是ws和wss,对应HTTP协议中的http和https,请求头中除了Connection:Upgrade之外还有一个Upgrade:websocket,它们两个将共同告诉服务器将连接升级为WebSocket这样一种全双工协议。如此,在握手完成之后,文本消息或者其他二进制消息就可以同时在两个方向上进行发送,而不需要关闭和重建连接。此时的客户端和服务端关系其实是对等的,他们都可以互相向对方主动发消息。那么这里有一点需要注意:那就是ws和wss模式并不能算作HTTP协议的一部分,因为HTTP请求和请求头并不包含URL模式,HTTP请求只在请求的第一行中包含相对于服务器的URL,在Host头中包含域名,而WebSocket中特有的ws和wss模式主要用于通知浏览器和api是希望使用SSL/TLS(wss),还是希望使用不加密的方式(ws)进行连接。

WebSocket协议的优势

说了这么多,那么接下来我们来看看WebSocket协议都有哪些优势:

由于WebSocket连接在端口80(ws)或者443(wss)上创建,与HTTP使用的端口相同,这样,基本上所有的防火墙都不会阻塞WebSocket连接

WebSocket使用HTTP协议进行握手,因此它可以自然而然的集成到网络浏览器和HTTP服务器中

心跳消息(ping和pong)将被反复的发送,进而保持WebSocket连接几乎一直处于活跃状态。一般来说是这样,一个节点周期性的发送一个小数据包到另外一个节点(ping),而另一个节点则使用了包含了相同数据的数据包作为响应(pong),这样两个节点都将处于连接状态

使用该协议,当消息启动或者到达的时候,服务端和客户端都可以知道

WebSocket连接关闭时将发送一个特殊的关闭消息

WebSocket支持跨域,可以避免Ajax的限制

HTTP规范要求浏览器将并发连接数限制为每个主机名两个连接,但是当我们使用WebSocket的时候,当握手完成之后该限制就不存在了,因为此时的连接已经不再是HTTP连接了

WebSocket协议的用途

说了这么多那么WebSocket协议到底可以用在哪些地方呢?事实上,WebSocket协议的用途几乎是没有限制的,比如:

网页上的在线聊天

多人在线游戏

在线股票网站

在线即时新闻网站

高清视频流

应用集群之间的通信

远程系统/软件的状态和性能的实时监控

到此,相信大家对“WebSocket有什么优点”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: WebSocket有什么优点

本文链接: https://www.lsjlt.com/news/296063.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • WebSocket有什么优点
    本篇内容主要讲解“WebSocket有什么优点”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“WebSocket有什么优点”吧!为什么要有WebSocket这个技术大家都知道,HTML页面在刚刚开...
    99+
    2023-06-19
  • css有什么优点
    这篇“css有什么优点”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“css有什么优点”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来就让我们进入主题吧。css是什么意思...
    99+
    2023-06-06
  • html5有什么优点
    html5的主要优点包括:语义化标记:清晰地传达内容结构和含义。多媒体支持:原生播放视频和音频。画布:创建动态图形和动画。本地存储:客户端存储数据并跨会话访问。地理定位:获取用户地理位置...
    99+
    2024-04-22
    地理位置 sessionstorage
  • LINQ有什么优点
    这篇文章主要讲解了“LINQ有什么优点”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“LINQ有什么优点”吧!1、易用性。每当新的技术推送到业界,有不少追随者就会跟着使用。方便、易用就成为了关...
    99+
    2023-06-17
  • 什么是golang?有什么优点?
    Golang是一种编程语言,它采用了一些现代编程语言的特征,例如高并发、垃圾回收和静态类型检查。Go是一种相对较新的语言,由Robert Griesemer、Rob Pike和Ken Thompson在2007年推出。该语言的设计目标是允许...
    99+
    2023-05-14
    Golang go语言
  • bootstrap有什么优缺点
    这篇文章给大家分享的是有关bootstrap有什么优缺点的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 bootstrap是一个基于HTML、CSS、...
    99+
    2024-04-02
  • react有什么优缺点
    这篇文章给大家分享的是有关react有什么优缺点的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 优点为:1、创建动态Web应用程序变得更加容易;2、可...
    99+
    2024-04-02
  • css中有什么优点
    小编给大家分享一下css中有什么优点,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!CSS的优点:1、编写一次CSS,在多个HTML页面中通过外部引入多次重复使用;...
    99+
    2023-06-15
  • Oracle Database Vault有什么优点
    这篇文章主要讲解了“Oracle Database Vault有什么优点”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Oracle Database Vau...
    99+
    2024-04-02
  • VPS主机有什么优点
    独占资源:VPS主机为每个用户提供独立的资源,不会受到其他用户的影响,保障了稳定性和性能。 灵活性高:用户可以根据自己的需求自由选...
    99+
    2024-04-20
    VPS主机
  • windows11系统有什么优点
    这篇文章主要讲解了“windows11系统有什么优点”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“windows11系统有什么优点”吧!windows11系统优点win11的效果很好,安装好...
    99+
    2023-07-01
  • 香港VPS有什么优点
    稳定性:香港VPS提供商通常具有稳定的服务器和网络连接,确保您的网站和应用程序始终保持在线和运行顺畅。 优质网络连接:香港位于亚洲...
    99+
    2024-04-18
    香港VPS VPS
  • 数据库有什么优点
    这篇文章主要介绍“数据库有什么优点”,在日常操作中,相信很多人在数据库有什么优点问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”数据库有什么优点”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!与数据文件管理方...
    99+
    2023-06-02
  • CSS Sprites有什么优缺点
    这篇“CSS Sprites有什么优缺点”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“CS...
    99+
    2024-04-02
  • Python库pyforest有什么优点
    这篇文章主要讲解了“Python库pyforest有什么优点”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python库pyforest有什么优点”吧!一个示例看到了吧,开头什么都没impo...
    99+
    2023-06-02
  • springboot框架有什么优点
    springboot框架有简化项目配置、快速开发、微服务架构支持、自动装配、健康监测与管理、强大的社区支持和测试支持等优点。1、简化项目配置,通过自动配置的方式提供默认配置,减少了开发人员手动配置的工作量;2、快速开发,可以快速创建并部署应...
    99+
    2023-08-10
  • JavaScript语言有什么优点
    这篇文章主要介绍“JavaScript语言有什么优点”,在日常操作中,相信很多人在JavaScript语言有什么优点问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaSc...
    99+
    2024-04-02
  • Java语言有什么优点
    本篇内容介绍了“Java语言有什么优点”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  Java是一门全球范围内使用最广泛的,面向对象的编程...
    99+
    2023-06-02
  • teambition有什么特点优势
    Teambition作为一款团队协作和项目管理工具,具有以下特点和优势:多种工作视图:Teambition提供了多种工作视图,包括任务板、甘特图、日历等,以适应不同团队的工作风格和需求。你可以根据团队的偏好选择最适合的视图进行工作和项目管理...
    99+
    2023-07-10
  • html5中WebSocket有什么用
    小编给大家分享一下html5中WebSocket有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!什么是 WebSocket...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作