http2基础教程-笔记
看完了这本书,想来还是要总结一下,不然就是看了就忘了
web页面请求
主要是两个部分:资源获取、页面解析/渲染,过程主要发生的是:
- 把待请求的URL放入队列
- 解析URL中域名的IP地址
- 建议与目标主机的tcp连接
- 如果是https请求,初始化并完成TLS握手
- 向页面对应的URL发送请求
- 接收相应
- 如果(接收的)是主体HTML,那么解析它,并针对页面中的资源触发优先获得机
- 如果页面上的关键资源已经接收到,就开始渲染页面
- 接收其他资源,继续渲染,知道结束。
关键性能指标
延迟、DNS查询、建议连接的时间、TLS协商时间、首字节时间(TTFB)等
HTTP1的问题
- 队头阻塞
- 低效的TCP利用,TCP的拥塞控制需要几次往返才能知道最佳的拥塞窗口的大小
- 臃肿的消息首部
- 受限的优先级设置
- 第三方资源
web性能的最佳实践
- DNS查询优化(dns-prefetch)
- 优化TCP连接(preconnect)
- 避免重定向,使用rewrite来代替
- 客户端缓存
- 条件缓存
- 压缩代码极简化
HTTP1中的优化中的反模式
- 生成雪碧图和资源合并内联
- 域名拆分
- 禁用cookie
HTTP2分帧带来的好处
首部压缩、多路复用、加密传输
其他
HTTP1和HTTP2都会受丢包的影响。HTTP3是QUIC协议,基于UDP,它又会带来什么样的变化呢?