Expires 介绍 以及Node 如何设置

本文介绍了HTTP响应头Expires的作用,以及如何通过Cache-Control和ServiceWorker控制缓存行为。特别提到在服务器端如Express.js中设置Expires头的方法,以及前端使用ServiceWorker进行更精细的缓存控制。
摘要由CSDN通过智能技术生成

Expires 是一个 HTTP 响应头,用于定义响应的过期时间。如果客户端的当前时间小于 Expires 的时间,那么客户端可以直接使用缓存的响应,而不需要向服务器发送请求。

Expires 的值是一个日期和时间,使用 GMT 格式表示。例如:

Expires: Wed, 21 Oct 2025 07:28:00 GMT

这表示这个响应将在 2025 年 10 月 21 日 07:28:00 过期。

需要注意的是,Expires 的工作依赖于客户端和服务器的时间设置是否正确。如果时间设置不正确,可能会导致缓存行为异常。因此,现代的 HTTP 应用通常使用 Cache-Control 头的 max-age 指令来代替 Expires,因为 max-age 指定的是相对时间,不受时间设置的影响。

在前端,我们通常不直接设置 Expires。Expires 是一个 HTTP 响应头,通常由服务器设置并发送给客户端。然后,客户端(例如浏览器)会根据这个头来决定是否使用缓存的响应。

如果你想在服务器端设置 Expires,你可以在服务器的配置文件或者在后端代码中设置。例如,如果你使用的是 Express.js,你可以这样设置:

app.use(express.static('public', {
  setHeaders: function (res, path, stat) {
    res.set('Expires', new Date(Date.now() + 86400000).toUTCString()); // 设置 Expires 为 24 小时后
  }
}));

这段代码会为所有在 public 目录下的静态文件设置 Expires 头。

如果你想在前端控制缓存行为,你可以使用 Service Worker。Service Worker 可以拦截请求,并控制是否使用缓存的响应。但是,Service Worker 不能直接设置 Expires 头,它使用的是 Cache API,这是一个更灵活的缓存机制。

  • 9
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值