当前位置:   首页国内主机资讯缓存主机:HTTP缓存的实用好记的规则

缓存主机:HTTP缓存的实用好记的规则

发布日期:2021-11-13 14:24 | 文章来源:中国万网

缓存主机

  HTTP缓存是web性能优化的重要手段,但有时,HTTP缓存可能会非常让人头疼。这里介绍几种实用好记的规则,希望能帮助大家。

  Cache-Control: public, no-cache, no-store

  不是所有的动态资源都会马上变成过时的资源。如果它们可以保持至少5分钟的时效,可以使用:

  Cache-Control: public, max-age=300

  经过这样的设置,浏览器只会在5分钟之后才重新检查。在这之前,缓存的内容会被直接使用。如果在5分钟后,这些过时的内容需要严格控制,你可以添加 must-revalidate 字段:Cache-Control: public, max-age=300, must-revalidate

  2)对于私密或者针对用户的内容,需要把 public 替换为 private 以避免内容被代理缓存。

  Cache-Control: private,max-age=300, must-revalidate

  3.ETag 和 Last-Modified

  这两个头在浏览器对资源做重新检查验证的时候会使用到。大致来说,浏览器只是盲目地存储这两个来自于主机的头的值,然后在需要检查验证的时候,浏览器根据请求条件,把这两个指发送给主机(分别通过 If-None-Match 和 If-Modified-Since)。

  在有条件的请求下,If-None-Match 和 If-Modified-Since 头的出现取决于主机。然而,由于是主机生成的 ETag 和(或) Last-Modified,所以实际上,这没有什么大问题。大多数的浏览器在可能的情况下都会把着两者都发送给主机。

  4.手动按下 Ctrl-R

  当按下 Ctrl-R 时,浏览器会携带下面的请求,以检查是否需要更新缓存内容:

  Cache-Control: max-age=0

  If-None-Match: …

  If-Modifed-Since: …

  注意这并不只是和原主机建立连接,其同样适用于代理主机。本质上,它只是重新检查验证内容。如果主机回应了一个304,浏览器将会使用缓存的内容。

  5.Vary: Accept-Encoding

  这个头对于一些人来说可能比较陌生。当一个资源启用了 gzip 压缩,并且被代理主机缓存,客户端如果不支持 gzip 压缩,那么在这样的情况下将会得到不正确的数据(也就是,压缩过的数据)。这将会使代理主机缓存两个版本的资源:一个是压缩过的,一个是没压缩过的。正确版本的资源将在请求头发送之后进行传输。

  以上就是HTTP缓存几个实用好记的规则,希望对你有帮助。

联系我们
关于使用场景和技术架构的更多咨询,请联系我们的销售和技术支持团队。
Yingsoo Host

在线
客服

在线客服:7*24小时在线

客服
热线

400-630-3752
7*24小时客服服务热线

关注
微信

关注官方微信
顶部