it-swarm.cn

缓存控制的硬性和快速规则是什么?

Confession :我维护的网站对缓存控制有不同的规则,主要是基于服务器的默认配置,然后是 Page SpeedY-Slow Firefox插件和Google的 Speed Tracer 中的网络资源视图。 Cache-Control根据他们的说法设置为私有/公共,如果Y-Slow表示存在错误并且在手动gziping亚马逊文件时似乎需要Vary-Accept-Encoding,则ETag的/ Last-Modified标头只会被修改。 CloudFront的。

在阅读关于不同选项的材料及其所做的事情时,似乎存在冲突的信息,破坏代理的规则和 货物崇拜 配置。上面提到的分析工具提供的任何官方信息都非常难以访问,因为它单独处理每个主题而不是统一策略(因此没有技术的交叉引用)。

例如,速度分析工具对ETag的网站评级与没有它们的网站相同,如果它们旨在帮助缓存,似乎没有意义。

平台无关的缓存控制策略有哪些硬性规则和快速规则?

编辑:

A 链接Jeff Atwood的文章 以极好的深度解释了缓存。

为了记录,虽然这里是硬性和快速的规则:

如果文件是使用GZIP压缩,etc - 使用“cache-control:private”作为代理可能会将压缩版本返回给不支持它的客户端(浏览器缓存将保持以这种方式标记的文件)。还要记住包含一个“Vary:Accept-Encoding”来表示它是可压缩的。

使用Last-Modified和ETag - belt和braces用法提供两个验证器,而ETag基于文件内容而不是修改时间,使用两者覆盖所有基础。 注意:AOL的PageTest 出于某种原因对ETag提供全权委托方法。 如果您在多个服务器上使用Apache来托管相同的内容,则通过从FileETag指令中排除它(即“FileETag MTime Size”)从ETag中删除隐式声明的inode,除非您真正使用相同的实时文件系统。

尽可能使用“cache-control:public” - 这意味着代理服务器(和浏览器缓存)将返回您的内容,即使页面的其余部分需要HTTP身份验证等。

15
Metalshark

首先,除非你使用服务器场/集群,否则不要像雅虎那样摆脱ETag。只要同一个文件在未更改时始终返回相同的ETag,那么它就是一个非常有用的指令。

至于其他标题,雅虎 最佳实践 建议为静态文件设置远期Expires标题,使用Cache-Control表示动态内容。然而Cache-control对于静态内容来说非常好(它们之间几乎没有区别)。

更改缓存的静态文件时,您需要更改文件名,或者在末尾添加唯一参数,例如: example.com/styles.css?v=2。但是,如下面的评论中所述,更改实际文件名是首选。

顺便提一下,您可以根据自己的喜好编辑YSlow规则,删除Etag规则并将您自己的域添加为CDN。这篇文章也很好读: 雅虎的问题不是你的问题

8
DisgruntledGoat

更改资源的请求标头以使用缓存对于大多数人来说,ebable缓存的方法是将一些代码添加到Web主机/服务器上名为.htaccess的文件中。

这意味着在webhost上转到文件管理器(或者在任何地方添加或上载文件)。

.htaccess文件控制着您网站的许多重要事项。如果您不熟悉.htaccess文件,请阅读我使用.htaccess文章,以便在更改之前了解一些方法。

下面的代码告诉浏览器要缓存什么以及“记住”它的时间。它应该添加到.htaccess文件的顶部。

## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 month"
</IfModule>
## EXPIRES CACHING ##

保存.htaccess文件,然后刷新您的网页。

资源:
https://varvy.com/pagespeed/leverage-browser-caching.html

0
Nomib Nomib