大部分情况下,浏览器是单线程执行的.为了有流畅的交互,需要尽可能快的发送请求,减少网络等待时间.Web性能优化则需要尽可能快的
页面资源的访问
DNS 查找
- 缓存
- 递归
- 权威
- DNS 查找的问题
- 移动端距离
- TCP 协议
- TLS 加密传输协议
8次往返后浏览器才发出请求
服务端响应
与 web 服务器建立连接后, 浏览器才发送初始的 HTTP GET 请求获取页面资源
响应
- 一旦服务器收到请求,使用相关的 响应头 和 HTML 回复
- 初始请求的响应包含所接收数据的第一个字节
- “Time to First Byte” (TTFB) 是进行请求到收到第一个包之间的时间
- 第一块 内容通常是14kb
TCP 慢开始 / 14kb 规则
- 第一个响应包是 14kb 大小
- 慢开始是一种均衡网络连接的速度的算法,逐渐增减发送数据的大小,直到最大网络带宽
- 在收到 ACK 后 会加倍 包的大小 (直到阈值 或 遇到拥塞)
这就是为什么web性能优化需要将此初始14Kb响应作为优化重点的原因
- 比如 webpack 打包文件的大小限制