美文网首页
Http2简单解析-历史(一)

Http2简单解析-历史(一)

作者: 百花鱼藤 | 来源:发表于2018-03-04 12:56 被阅读0次

    一、请求分析

    1.1 从资源获取、页面解析/渲染

    资源请求

    (1)把待请求URL放入队列;

    (2) 解析URL中域名的IP地址(A);

    (3) 建立与目标主机的TCP连接(B);

    (4) 如果是HTTPS请求,初始化并完成TLS握手(C);

    (5) 向页面对应的URL发送请求

    (6) 接收响应;

    (7) 如果(接收的)是主体HTML,那么解析它,并针对页面中的资源触发优先获取机制(A);

    (8) 如果页面上的关键资源已经接收到,就开始渲染页面(B);

    (9) 接收其他资源,继续解析渲染,直到结束(C)。

    页面渲染

    1.2、关键性能指标

    1、网络延迟;2、带宽;3、DNS 查询;4、建立连接时间;4、TLS协商时间

    5、更多的字节,更多的资源、更高的复杂度,更多的域名。

    二、目前H1存在的问题。

    1、 队头阻塞 默认六个连接。

     2、低效的TCP利用 在接收方确认数据包之前,发送方可以发出的TCP包的数量。

    例如,如果拥塞窗口指定为1,那么发送方发出1个数据包之后,只有接收方确认了那个

    包,才能发送下一个, 默认 576  IP头部 28 UDP 8个字节。

     3、首部不能压缩  460个字节。

      4、受优先级的限制。

      5、第三方资源的影响。

    三、优化方向

     1)、减少网络延迟

      2)、优化页面渲染

      3)、DNS查询优化(限制不同域名的数量,降低解析域名的延迟(定时监控,不同服务商服务质量的差异,DNS预取指令(ajax.googleapis.com),在解析HTML主体时,解析其他域名)。

      4)、TCP建立连接优化(利用 preconnect 指令 5,连接在使用之前就已经建立好了, 尽早终止并响应。借助 CDN,在距离请求用户很近的边缘端点上,请求就可以获得响应。所以可以终止连接,大幅减少建立新连接的通信延迟,实施最新的 TLS 最佳实践 6 来优化 HTTPS)

      5)、避免重定向 (利用CDN代替客户端在云端实现重定向,如果是同一域名的重定向,使用 Web 服务器上的 rewrite 规则,避免重定向)。

    6)、客户端缓存

    7)、压缩和代码极简化

    8)、图片优化

        图片元信息,例如题材地理位置信息、时间戳、尺寸和像素信息,通常包含在二进制数据里,应该在发送给客户端之前去掉。

    相关文章

      网友评论

          本文标题:Http2简单解析-历史(一)

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