(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的主要内容,如果未能解决你的问题,请参考以下文章