当前位置: 首页 > news >正文

【架构师(第五十三篇)】 性能优化之 HTTP 缓存

ETag

ETagHTTP 响应头是资源的特定版本的标识符,这可以让缓存更高效,并节省带宽,因为如果内容没有改变,web 服务器不需要发送完整的响应。

第二次请求的时候会添加一个 If-None-Match 请求头,去判断文件是否发生过变化。

修改 nginx 配置文件

// conf\nginx.conf
http {etag off;
} 

这样就没有了

Last-Modified

Last-Modified 是一个响应首部,其中包含源头服务器认定的资源做出修改的日期及时间。

第二次请求的时候会添加一个 If-Modified-Since 请求头,去判断文件是否发生过变化。

修改 nginx 配置文件

// conf\nginx.conf
http { add_header Last-Modified "";
} 

这样就没有了

Expires

Expires 响应头包含日期/时间, 即在此时候之后,响应过期。

使用 nginxexpires 指令添加对应的响应头。

修改 nginx 配置文件

// conf\nginx.conf
http {expires 5s;
} 

当我们再次访问的时候,可以看到 from memory cache

可以看到时间是非常快的

但是好像 html 文件并没有被缓存。是因为浏览器自动添加了请求头 Cache-Control:max-age=0,导致没有缓存起来。

Cache-Control

Cache-Control 通用消息头字段,被用于在 http 请求和响应中,通过指定指令来实现缓存机制。

修改 nginx 配置文件

// conf\nginx.conf
http {
 add_header Cache-Control no-store;
} 

总结

最后

为大家准备了一个前端资料包。包含54本,2.57G的前端相关电子书,《前端面试宝典(附答案和解析)》,难点、重点知识视频教程(全套)。



有需要的小伙伴,可以点击下方卡片领取,无偿分享

相关文章:

  • 博德宝闪耀回归,九牧国际化提速
  • 20岁电竞选手自学编程转行程序员,轻松拿下大厂offer
  • 转行IT,你需要了解的真实项目研发流程是怎样的?
  • 优优聚:美团成立机器人研究院!
  • 自己个人拥有一个可以支付功能的网站?当然可以了!保姆级演示!
  • 如何在Odoo 16库存中配置批次和序列号
  • 12.22
  • 转行大数据,编程学Java还是Python?
  • Java 位运算
  • 非公用网络在工业互联网中的部署方案探讨
  • 小红书怎么高效找达人?方法不对导致耗时又不适合
  • java: 无效的目标发行版: 17 新建springBoot项目
  • Polygon zkEVM发布公开测试网2.0
  • 如何在 JavaScript 中格式化日期?
  • 安全网络身份认证系统的设计与实现
  • SOLIDWORKS Electrical 2023新功能揭秘!提高电气工程师设计效率 与机械工程师协同设计
  • 【Java入门基础第10天】Java常用的转义字符
  • URLLC典型应用建模与评估
  • Java反射和new效率差距有多大?
  • 用 Python 制作各种用途的二维码