WebSocket是什么原理?为什么可以实现持久连接?( 三 )


希望我的回答 。能够帮助到你!我将持续分享Java开发、架构设计、程序员职业发展等方面的见解 。希望能得到你的关注 。

WebSocket是什么原理?为什么可以实现持久连接?

文章插图
其他观点:
很高兴能够看到和回答这个问题!
WebSocket是什么原理?
WebSocket通过常见的HTTP协议进行数据连接 。一般走的是TCP通道 。WebSocket是一个允许单TCP连接之间全双工通信的协议 。在WebSocket API中 。浏览器和服务器只需要一次远程连接 。而不是三次远程连接连接到TCP服务器 。这样就可以直接持久连接和双向数据传输 。
WebSocket是什么原理?为什么可以实现持久连接?

文章插图
WebSocket协议是基于TCP的一种新的网络协议 。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端 。
缺陷:HTTP的通信只能由客户端发起建立在TCP协议之上WebSocket特点性能开销小通信高效
客户端可以与任意服务器通信
协议标识符ws wss持久化网络通信协议
通常情况下 。浏览器向服务器发送一个请求 。工作完成后再向客户端返回一个消息 。如果需要主动向浏览器提供数据 。可以使用Web套接字 。在向对方发送消息之前 。先在服务器上维护一个Web套接字连接 。然后在前端维护一个 。再维护Web套接字 。
WebSocket是什么原理?为什么可以实现持久连接?

文章插图
Websocket使用ws或wss协议 。对应http或https 。在WebSocket远程连接成功后 。这是一个全双工的TCP通道 。在这个通道上可以无差别的从工作日结束后向客户端发送数据 。WebSocket创建的绑定与长HTTP绑定不同 。由于长期的地下室还是HTP协议 。他还是提出了一个问题 。但只是长期保持联系 。
为什么可以实现持久连接?
WebSocket协议是由HTML5标准定义的 。它最初是为浏览器设计的 。避免了相似性的限制 。因为浏览器可以和任何工作端进行通信 。现代的浏览器大多支持WebSocket 。虽然WebSocket最初定义为HTML5 。但它同样适用于移动终端 。虽然可以通过Socket直接与终端连接 。但使用WebSocket可以有效防止一些防火墙的窃听 。
WebSocket是什么原理?为什么可以实现持久连接?

文章插图
WebSocket建立了一个连接 。我们称之为持久连接 。每个连接都是服务器的一个资源 。但是 。如果服务器长时间没有消息通信 。就会倾向于关闭连接 。其实 。WebSocket的任务就是及时向桌面端发送空白消息 。保证连接不会自动断开 。很多网站采用技术实现推送技术 。当浏览器向服务器发送HTTTP请求时 。在一定的时间间隔内(如1秒)进行轮询 。然后服务器将最新的数据返回给客户端的浏览器 。这种传统的模式有明显的缺点 。那就是浏览器需要不断地访问服务器 。但HTTTP请求中会包含一个较长的头 。在这个头中 。真正有效的数据只能占据一小部分 。这似乎造成了很多资源(如带宽)的浪费 。
WebSocket是什么原理?为什么可以实现持久连接?

文章插图
第一次连接到Web套接字时 。使用普通的HTTP与服务器通信 。与Web套接字交换消息 。一旦建立了Web套接字连接 。所有的消息都可以通过这个通道发送 。同时 。客户端和服务器会继续使用乒乓球保持心跳 。防止非正常断线 。将网站的刷新逻辑移植到支持的浏览器上很容易 。只需要找一些webssocket接口使用双webssocket属性即可 。因为协议是完全双向的 。服务器可以随时主动向客户端发送数据 。与HTTP请求相比 。接收客户请求的响应所需的延迟要少得多 。即使与彗星等长时间的轮询相比 。也可以在短时间内更频繁地传输数据 。
答案写到这里 。我想您应该明白了WebSocket的原理 。也知道了WebSocket可以实现持久连接的原因 。WebSocket是基于web的一项新技术 。它克服了以往HTTP协议下访问速度较慢容易断开连接 。网站假死的现象 。未来WebSocket技术将全面普及 。提高我们的上网体验!
以上便是我的一些见解和回答 。可能不能如您所愿 。但我真心希望能够对您有所帮助!不清楚的地方您还可以关注我的头条号“每日精彩科技”我将竭尽所知帮助您!
码字不易 。感觉写的还行的话 。还请点个赞哦!

推荐阅读