博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HTTP/2 和 Websocket
阅读量:4656 次
发布时间:2019-06-09

本文共 1429 字,大约阅读时间需要 4 分钟。

本文转自我的博文

HTTP/2 是什么

讲的比较详细:

  • 它是 google 提出的开源协议,旨在提高网络传输效率

  • 它是二进制协议

  • 它采用多路复用解决 HTTP 1.1 的 head-of-line blocking (HOL Blocking)问题(较慢的请求阻塞其它请求的问题)

  • 它通过压缩 http 头提高效率

  • 它支持全双工,因此可以使用 Server Push 推送到客户端

与 websocket 的比较

  HTTP/2 WebSocket
Headers 头 Compressed (HPACK) 请求头部压缩 None 无
Binary 二进制 Yes Binary or Textual 二进制或文本都支持
Multiplexing多路复用 Yes Yes
Prioritization优先化 Yes No
Compression压缩 Yes Yes
Direction 方向 Client/Server + Server Push (Server Push只能浏览器消化,不支持API,也就是代码无法使用) Bidirectional 双向
Full-duplex全双工 Yes Yes

问题

  • HTTP/2 Server Push 不能被代码使用,所以还得配合SSE(Server sent event),无论从coder还是运维的角度来看,这混搭增加了复杂度。
  • IE对http2以及SSE都支持的不好
  • HTTP/2 连接不确定性会永远保持连接,而websocket有onclose事件,对代码友好

    HTTP/2 Servers are encouraged to maintain open connections for as long as possible but are permitted to terminate idle connections if necessary. When either endpoint chooses to close the transport-layer TCP connection, the terminating endpoint SHOULD first send a GOAWAY (Section 6.8) frame so that both endpoints can reliably determine whether previously sent frames have been processed and gracefully complete or terminate any necessary remaining tasks.

  • 多个tab页windows页可能共用一个HTTP/2连接,你无法知道Server Push来自哪一个
  • 由于多路复用,以前基于HTTP 1.1的网站提速技巧Domain sharding(由于浏览器限制同一域名最多连接数)将不再起作用。

实际实现状态

 vs  显而易见,http2 在浏览器服务器上限制颇多,而 websocket 基本普及。

再来看看, 支持程度仍然不如websocket。

结论:

HTTP/2 完全不能替代websocket,各有各的适用场景。我个人偏好,做app还是偏向于websocket,参看我的另外一博文.

 

 

转载于:https://www.cnblogs.com/kazge/p/10290616.html

你可能感兴趣的文章
Java 异常处理 练习2
查看>>
单步查询--数组续
查看>>
存储设备 S2600设备 介绍
查看>>
S3 服务(Simple Storage Service简单存储服务) 简介(与hdfs同一级)
查看>>
ES elasticsearch 客户端查询CPU占用率高之性能优化
查看>>
VS2010 EXCEL2010 表格操作的编程实现
查看>>
如何使用jmeter做接口测试
查看>>
Mac中如何添加环境变量
查看>>
ios 跳转到某 app 的评价区域、由某应用跳转到其他应用
查看>>
javascript之快速排序
查看>>
VelocityTracker的简单研究
查看>>
linux常用命令汇总
查看>>
使用epublib解析epub文件(章节内容、书籍菜单)
查看>>
下载Eclipse、下载Java各个版本,来这里就对了
查看>>
华为离职副总裁徐家骏:透露年薪千万的工作感悟
查看>>
Hibernate工作原理及为什么要用?
查看>>
Ubuntu 12.04 LTS 下配置 apache支持SPDY, 使用wireshark 抓包分析SPDY 协议
查看>>
打印不同程序对象的字节表示(深入理解计算机系统)
查看>>
装饰器详解
查看>>
alibaba/canal 阿里巴巴 mysql 数据库 binlog 增量订阅&消费组件
查看>>