3.2 HTTP/1.1 如何优化?
- 避免发送 http 请求:
- 通过 HTTP 协议头部字段进行协商,将一些重复性的请求通过 URL 为 key,响应为 value,缓存在本地
- 服务器预估过期时间,前端发现过期重新请求,并通过 Etag 保存摘要,如果没变,服务器返回 304,依旧使用缓存
- 减少 http 请求次数
- 减少重定向请求次数:增加代理服务器,当需要重定向,代理服务器直接完成重定向请求,不由客户端完成
- 合并请求:有的网页会有多个小图片,每个图片一次请求,可以将这些打包成大文件(但是修改一个就要全部请求,有利有弊)
- 延迟发送请求:一开始只请求必要的资源,后续资源在客户端实际使用再请求。
- 减少 HTTP 响应数据大小:
- 无损压缩( gzip), 有损压缩:解压的数据会与原始数据不同但是非常接近(webP )
- 支持只请求部分资源:
- 在请求投使用 range,返回码是 206,节省带宽,
- 虚拟主机:
- 引入 Host Header,允许同一个 IP 地址托管多个域名,支持虚拟主机。
