Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HTTP 2.0 简介 #10

Open
wangzitiansky opened this issue Oct 3, 2020 · 0 comments
Open

HTTP 2.0 简介 #10

wangzitiansky opened this issue Oct 3, 2020 · 0 comments
Labels
计算机网络:electric_plug: 包括TCP IP HTTP HTTPS

Comments

@wangzitiansky
Copy link
Owner

wangzitiansky commented Oct 3, 2020

HTTP 2.0 与 HTTP 1.1

分享汇总 📚 文章汇总

HTTP 协议基本都是面试必考,除了一些经典面试题外,对于 HTTP 2.0 这种新兴事物 🌱 ,也应该有所了解

HTTP 1.1 存在的问题

HTTP 1.1 的问题主要是性能低下

  • 高延迟带来的加载速度慢

    • 就算网络带宽增加,延迟并没有下降
    • 并发连接有限
    • 同一连接只能在完成一个 HTTP 事务之后,才能处理下一个
  • 无状态特性带来的巨大的 HTTP 头部

    • 重复传输一些 HTTP 头部

      因为 REST 架构要求无状态,每次 HTTP 请求之间都是独立的,所以每个 HTTP 请求都要带着巨大的头部

  • 不支持服务端推送

    HTTP 1.1 的交互模式是请求应答模式,只能客户端给服务端发送请求,服务端应答。服务端是不能主动推送消息的。

HTTP 2.0 的主要特性

  • 传输数据量大幅减少

    • 二进制传输

      例如一个数字 10000 如果使用 ASCII 编码需要 5 字节

    • 标头压缩

      标头压缩主要是通过 HPACK 算法对头部压缩

  • 多路复用

    多路复用允许多次请求并发的使用同一连接进行,主要好处有:

    • 同一 TCP 连接只有一次慢启动,避免了 TCP 多次慢启动。并且减少 TCP 连接
    • 对于服务端来讲,一个 TCP 连接服务了多组资源
  • 支持服务端消息推送

HTTP 2.0 主要是性能的提升,大家可以通过这个 Demo 感受一下 Demo

参考资料
@wangzitiansky wangzitiansky added the 计算机网络:electric_plug: 包括TCP IP HTTP HTTPS label Oct 3, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
计算机网络:electric_plug: 包括TCP IP HTTP HTTPS
Projects
None yet
Development

No branches or pull requests

1 participant