Http2简单解析-历史(一)

一、请求分析

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)、图片优化

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,314评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,112评论 19 139
  • 我想每个人都不想被人可怜,同情。 记得周星驰演的电影《大话西游》里面有句台词:“你看那个人好奇怪呦,像一条狗”。 ...
    呆丫阅读 5,338评论 0 0
  • 本文是互联网运营韩小妞发布在简书上的第11篇原创文章。 互联网运营韩小妞: 在《怎么做好店铺自然流量,掌握这38点...
    木子思考笔记阅读 3,315评论 0 0
  • 我做梦的时候 有可能是在忙碌地收获 有时候是从未在现实里见过的光影 有时候会是那些醒来就变成碎片的 关于今天或者昨...
    胤廷生阅读 1,621评论 0 2

友情链接更多精彩内容