优化HTTP请求和响应的方法

简介: 优化HTTP请求和响应的方法

为什么要进行请求和响应的优化?

核心目的:更快的获取到内容。

核心思路

  1. 更好的连接传输效率。
  2. 更少的请求数量。
  3. 更小的资源大小。
  4. 合适的缓存策略。

最佳实践

  1. 减少DNS查找:每次主机名的解析都需要一次网络往返,从而增加了请求的延迟时间,同时还会阻塞后续的请求。
  2. 重用TCP连接:尽可能的使用持久连接,以消除因TCP握手和慢启动导致的延迟。
  3. 减少HTTP重定向:HTTP重定向需要额外的DNS查询,TCP握手等非常耗时,最佳的重定向次数为0。
  4. 压缩传输的资源:比如Gzip、图片缓存。
  5. 使用缓存:比如HTTP缓存、CDN缓存、Service Worker缓存。
  6. 使用CDN内容分发网络:把数据放在里用户地理位置更近的地方,可以明显减少每次TCP连接的网络延迟,增大吞吐量。
  7. 删除没有必要请求的资源
  8. 在客户端缓存资源:缓存必要的应用资源,避免每次都重复请求相同的内容,例如多图片下载可以考虑使用缓存。
  9. 内容在传输前先压缩:传输数据之前应该先压缩应用资源,把要传输的字节减少到最小,在压缩的时候确保对每种不同的资源采用最好的压缩手段。
  10. 消除不必要的请求开销:减少请求的HTTP首部数据(比如HTTP Cooki)
  11. 并行处理请求和响应:请求和响应的排队都会导致延迟,可以尝试并行的处理请求和响应(利用多个HTTP1.1连接实现并行下载,在可能的情况下使用HTTP管道计数)。
  12. 针对协议版本采取优化措施:例如升级到HTTP2.0。
  13. 根据需要采用服务端渲染方式:这种方式可以解决SPA应用首屏渲染慢的问题。
  14. 采用预渲染的方式加速静态页面:页面渲染的极致性能,比较适合静态页面。
相关文章
|
3天前
|
Web App开发 存储 缓存
第八篇 提升网页性能:深入解析HTTP请求优化策略(三)
第八篇 提升网页性能:深入解析HTTP请求优化策略(三)
|
3天前
|
消息中间件 前端开发 JavaScript
第七篇 提升网页性能:深入解析HTTP请求优化策略(二)
第七篇 提升网页性能:深入解析HTTP请求优化策略(二)
|
2天前
|
缓存 前端开发 JavaScript
React和Next.js开发常见的HTTP请求方法
React和Next.js开发常见的HTTP请求方法
6 0
|
2天前
|
自然语言处理 负载均衡 监控
处理HTTP请求的服务器
处理HTTP请求的服务器
10 1
|
2天前
|
JSON Java 数据安全/隐私保护
java中的http请求的封装(GET、POST、form表单、JSON形式、SIGN加密形式)
java中的http请求的封装(GET、POST、form表单、JSON形式、SIGN加密形式)
|
Java Apache
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
hbase从集群中有8台regionserver服务器,已稳定运行了5个多月,8月15号,发现集群中4个datanode进程死了,经查原因是内存 outofMemory了(因为这几台机器上部署了spark,给spark开的...
785 0
|
Web App开发 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
zookeeper watch的定义如下:watch事件是一次性触发器,当watch监视的数据发生变化时,通知设置了该watch的client,即watcher。
904 0
|
Web App开发 前端开发 Java
|
Web App开发 前端开发 Java
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
 Connection reset by peer的常见原因: 1)服务器的并发连接数超过了其承载量,服务器会将其中一些连接关闭;    如果知道实际连接服务器的并发客户数没有超过服务器的承载量,看下有没有网络流量异常。
830 0
|
Web App开发 前端开发 Linux
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
问题症状 修改 linux 内核文件 #vi /etc/sysctl.conf后执行sysctl  -P 报错 error: "net.
530 0