(5)WebSocket 与 HTTP
一、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