(5)WebSocket 与 HTTP

作者: hedgehog1112 | 来源:发表于2020-12-17 08:09 被阅读0次

    一、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

    相关文章

      网友评论

        本文标题:(5)WebSocket 与 HTTP

        本文链接:https://www.haomeiwen.com/subject/moiogktx.html