You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
影响一个网络请求的因素主要有两个,带宽和延迟。今天的网络基础建设已经使得带宽得到极大的提升,大部分时候都是延迟在影响响应速度。http1.0被抱怨最多的就是连接无法复用,和head of line blocking这两个问题。理解这两个问题有一个十分重要的前提:客户端是依据域名来向服务器建立连接,一般PC端浏览器会针对单个域名的server同时建立6~8个连接,手机端的连接数则一般控制在4~6个。显然连接数并不是越多越好,资源开销和整体延迟都会随之增大。
主要从这些方面阐述
新的二进制格式
在应用层和传输层之间增加了一个二进制分帧层。
在分帧层中,会将传输的信息分割成更小的消息和帧,并采用二进制格式进行编码。在http1.x中的头部信息会被封装到HEADER frame,而相应的Request Body则封装到DATA frame 中。
关于http2.0中的三个概念如下:
这些概念总结如下:
HTTP1.x 中,是基于文本协议的格式的。文本的表现形式有很多种,但是很难做到健壮
HTTP的性能优化主要是因为低延迟,HTTP/2可以让通信都在一个连接上完成,这个连接可以承载任意数量的双向数据流。
HTTP/2 中的新二进制分帧层解决了 HTTP/1.x 中存在的队首阻塞问题,也消除了并行处理和发送请求及响应时对多个连接的依赖。结果,应用速度更快、开发更简单、部署成本更低。
多路复用
影响一个网络请求的因素主要有两个,带宽和延迟。今天的网络基础建设已经使得带宽得到极大的提升,大部分时候都是延迟在影响响应速度。http1.0被抱怨最多的就是连接无法复用,和head of line blocking这两个问题。理解这两个问题有一个十分重要的前提:客户端是依据域名来向服务器建立连接,一般PC端浏览器会针对单个域名的server同时建立6~8个连接,手机端的连接数则一般控制在4~6个。显然连接数并不是越多越好,资源开销和整体延迟都会随之增大。
连接无法复用会导致每次请求都经历三次握手和慢启动。三次握手在高延迟的场景下影响较明显,慢启动则对文件类大请求影响较大。
多路复用即每一个request都是用作连接共享机制的。一个request对应一个id,这样一个连接上可以有多个request,每个request可以随机的混杂在一起,接收方可以根据request的id将request再归属到各自不同的服务端请求里面。
多路复用允许同时通过单一的 HTTP/2 连接发起多重的请求-响应消息。
总结:
表现如下:
header压缩
因为http中头部信息带有大量信息,而且每次都是重复发送的,所以使用encoder来减少需要传送的header的大小,并且通讯双方都会保存一份header fields,这样就避免了header的传输,也减少了需要传输的大小。
服务端推送
服务端推送是一种在客户端请求之前发送数据的机制。在 HTTP/2 中,服务器可以对客户端的一个请求发送多个响应。
HTTP,HTTP2.0,SPDY,HTTPS你应该知道的一些事
HTTP,HTTP2.0,SPDY,HTTPS看这篇就够了
HTTP/2.0 相比1.0有哪些重大改进?
HTTP/2 简介
The text was updated successfully, but these errors were encountered: