http2基础教程-笔记

Author Avatar
Peipei Wong 7月 19, 2020
  • 在其它设备中阅读本文章

看完了这本书,想来还是要总结一下,不然就是看了就忘了

web页面请求

主要是两个部分:资源获取、页面解析/渲染,过程主要发生的是:

  1. 把待请求的URL放入队列
  2. 解析URL中域名的IP地址
  3. 建议与目标主机的tcp连接
  4. 如果是https请求,初始化并完成TLS握手
  5. 向页面对应的URL发送请求
  6. 接收相应
  7. 如果(接收的)是主体HTML,那么解析它,并针对页面中的资源触发优先获得机
  8. 如果页面上的关键资源已经接收到,就开始渲染页面
  9. 接收其他资源,继续渲染,知道结束。

关键性能指标

延迟、DNS查询、建议连接的时间、TLS协商时间、首字节时间(TTFB)等

HTTP1的问题

  1. 队头阻塞
  2. 低效的TCP利用,TCP的拥塞控制需要几次往返才能知道最佳的拥塞窗口的大小
  3. 臃肿的消息首部
  4. 受限的优先级设置
  5. 第三方资源

web性能的最佳实践

  1. DNS查询优化(dns-prefetch)
  2. 优化TCP连接(preconnect)
  3. 避免重定向,使用rewrite来代替
  4. 客户端缓存
  5. 条件缓存
  6. 压缩代码极简化

HTTP1中的优化中的反模式

  1. 生成雪碧图和资源合并内联
  2. 域名拆分
  3. 禁用cookie

HTTP2分帧带来的好处

首部压缩、多路复用、加密传输

其他

HTTP1和HTTP2都会受丢包的影响。HTTP3是QUIC协议,基于UDP,它又会带来什么样的变化呢?