📜  Cache-Control: no-cache, no-store Expires: 0 Pragma: no-cache (1)

📅  最后修改于: 2023-12-03 15:14:05.255000             🧑  作者: Mango

缓存控制

当我们访问一个网站时,浏览器会对网站进行缓存,这样再次访问同一网站时就可以更快的加载页面。但有时我们可能想要禁止浏览器对该网站进行缓存,这时我们就可以使用Cache-ControlExpiresPragma等HTTP响应头字段。

Cache-Control

Cache-Control是HTTP/1.1中的一个控制缓存的头部信息,它有多个值,常用的有以下几种:

  • public:表明响应可以被任何缓存区缓存。
  • private:表明响应只能被单个用户(例如浏览器)缓存,不能被共享。
  • no-cache:表明需要使用缓存,但必须先确认本地是否有最新的版本,然后与服务器上的版本进行对比,以决定是否需要更新缓存。
  • no-store:表明不能被缓存,每次都要向服务器请求完整的资源。
  • max-age:表明可以缓存的最大有效时间,单位为秒。

示例:

response.headers['Cache-Control'] = 'no-store'
Expires

Expires头部信息指定了一个绝对过期时间,过期时间是服务器端的时间。由于过期时间的计算需要考虑服务器端和客户端的时差,因此在HTTP/1.1中已被Cache-Control头信息取代。

示例:

response.headers['Expires'] = '0'
Pragma

Pragma是用来支持HTTP/1.0协议的遗留信息,它可以用来实现与Cache-Control的相同功能。

示例:

response.heades['Pragma'] = 'no-cache'

以上就是几种常用的缓存控制头信息,使用它们可以更好的控制缓存。