Spring CloudJava webspringboot

(5)WebSocket 与 HTTP

2020-12-17  本文已影响0人  hedgehog1112

一、WebSocket 与 HTTP

WebSocket:双向平等对话,服务器可主动向客户端推送,客户端可主动发送,2008年诞生,2011成国际标准,所有浏览器都支持

新协议,跟 HTTP 协议基本没关系,为兼容现浏览器,握手阶段用 HTTP 。主要区别:

WebSocket 其他特点:

1)建立TCP 协议之上,服务端实现容易

2)与 HTTP 兼容,默认端口也是80和443,握手时不容易屏蔽,能通过各种 HTTP 代理服务器

3)数据格式轻量,性能开销小,通信高效。

4)可发送文本、二进制数据

5)没有同源限制,客户端可以与任意服务器通信

6)协议标识符是ws(加密则为wss),服务器网址就是 URL

二、WebSocket 是什么样协议,优点

持久化协议

1、HTTP 非持久生命周期:

    1.0 通过 Request 界定,一个Request 和一个 Response 结束

    1.1 有keep-alive,可以发多个 Request,接收多个 Response。但Request = Response, Response 被动

2、WebSocket 握手

基于 HTTP 协议,多了3Upgrade: websocket   4Connection: Upgrade, 告诉Apache 、 Nginx 等服务器要用 WebSocket

5)浏览器随机生成Base64 encode 值,告诉服务器,验证是不是真WebSocket 助理

6)用户定义字符串,区分同 URL,不同服务所需协议

7)服务器用WebSocket Draft协议版本

返回下列,表示已接受请求, 成功建立 WebSocket 

2、3不变,告诉客户端即将升级是 WebSocket 协议

4)Sec-WebSocket-Accept 经服务器确认,加密后Sec-WebSocket-Key 。 服务器:好啦,知道啦,给你看我 ID CARD 证明

5)Sec-WebSocket-Protocol 最终使用协议

HTTP 完成所有工作,接下来按WebSocket 进行

三、WebSocket 作用

1、ajax轮询:浏览器隔个几秒就发送一次请求,询问服务器是否有新信息

2、long poll:跟 ajax轮询 差不多,都是采用轮询的方式,不过采取的是阻塞模型

3、WebSocket(最好,双方主动):只需要经过一次 HTTP 请求,就可以做到源源不断的信息传送

https://www.cnblogs.com/nnngu/p/9347635.html

上一篇下一篇

猜你喜欢

热点阅读