本文介绍: HTTP协议是“请求响应模式浏览器必须先发请求服务器服务器才会响应该请求。即服务器不会主动发送数据浏览器。但它们实时性不高,频繁请求也会给服务器巨大压力,也浪费网络流量带宽。于是HTML5推出WebSocket标准,使得浏览器服务器之间任一方都可主动发消息给对方,这样服务器有新数据时可主动推给浏览器

HTTP协议是“请求-响应”模式,浏览器必须先发请求给服务器,服务器才会响应该请求。即服务器不会主动发送数据浏览器

实时性要求高的应用,如在线游戏、股票实时报价和在线协同编辑等,浏览器需实时显示服务器的最新数据,因此出现Ajax和Comet技术

但它们实时性不高,频繁请求也会给服务器巨大压力,也浪费网络流量带宽。于是HTML5推出WebSocket标准,使得浏览器和服务器之间任一方都可主动发消息给对方,这样服务器有新数据时可主动推给浏览器

WebSocket原理

网络上的两个程序通过一个双向链路进行通信,这个双向链路的一端称为一个Socket。一个Socket对应一个IP地址端口号,应用程序通常通过Socket向网络发出或应答网络请求。

Socket不是协议,是对TCP/IP协议抽象出来的API。

WebSocket跟HTTP协议一样,也是应用协议。为兼容HTTP协议,它通过HTTP协议进行一次握手握手数据就直接从TCP层的Socket传输,与HTTP协议再无关。

这里握手指应用协议层,不是TCP层,握手时,TCP连接已建立。 即HTTP请求里带有websocket的请求头,服务端回复也带有websocket的响应头。

浏览器发给服务端的请求会带上跟WebSocket有关的请求头,比如Connection: Upgrade和Upgrade: websocket

img

若服务器支持WebSocket,同样会在HTTP响应加上WebSocket相关的HTTP头部:

img

这样WebSocket连接就建立好了。

WebSocket的数据传输以frame形式传输,将一条消息分为几个frame,按先后顺序输出去。为何这样设计

Tomcat如何支持WebSocket

链接https://juejin.cn/post/7095918534210879519

Java实现WebSocket的两种方式 

参考 https://www.cnblogs.com/onlymate/p/9521327.html

原文地址:https://blog.csdn.net/zdwzzu2006/article/details/134545154

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_3553.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注