(5)WebSocket 与 HTTP

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(5)WebSocket 与 HTTP相关的知识,希望对你有一定的参考价值。

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

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

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

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

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

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

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

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

持久化协议

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

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

基于 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 进行

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

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

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

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

以上是关于(5)WebSocket 与 HTTP的主要内容,如果未能解决你的问题,请参考以下文章

WebSocket的交互实例

WebSocket:5分钟从入门到精通

WebSocket协议:5分钟从入门到精通

WebSocket协议:5分钟从入门到精通

javaweb与websocket实现在线聊天功能总结

spring与websocket整合