谷歌浏览器对缓存的审计巴新断续器断续器JavaScript更新

2022-08-30 23:44:36

如果我使用 Google Chrome 对我的网站运行审核,则会在利用浏览器缓存部分收到以下消息:

以下资源缺少缓存过期。未指定过期时间的资源可能不会被浏览器缓存:

以下是所有图片的列表。我在杠杆代理缓存中收到类似的通知:

请考虑向以下资源添加“缓存控制:公共”标头:

除了图片,我还收到了有关HTML,CSS和JavaScript文件的通知:

以下资源是显式不可缓存的。如果可能,请考虑使它们可缓存:

这很有趣,因为我一直在努力缓存所有静态内容(除了图片,我只是保留了Apache的默认设置)。Firefox确实将所有这些项目存储在缓存中。

在我的 HTTP 标头中有什么需要改进的吗?


以下是删除浏览器缓存后加载的某些项目的完整标头集。图片使用默认设置,我之前没有真正检查过,其余的应该是三个小时的cachéd。我可以同时设置标头和 ..htaccessPHP

巴新

HTTP/1.1 200 OK
Date: Sat, 31 Jul 2010 12:46:14 GMT
Server: Apache
Last-Modified: Thu, 18 Mar 2010 21:40:54 GMT
Etag: "c48024-230-4821a15d6c580"
Accept-Ranges: bytes
Content-Length: 560
Keep-Alive: timeout=4
Connection: Keep-Alive
Content-Type: image/png

断续器

HTTP/1.1 200 OK
Date: Sat, 31 Jul 2010 12:46:13 GMT
Server: Apache
X-Powered-By: PHP/5.2.11
Expires: Sat, 31 Jul 2010 15:46:13 GMT
Cache-Control: max-age=10800, s-maxage=10800, must-revalidate, proxy-revalidate
Content-Encoding: gzip
Vary: Accept-Encoding
Last-Modified: Wed, 24 Mar 2010 20:30:36 GMT
Keep-Alive: timeout=4
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=ISO-8859-15

断续器

HTTP/1.1 200 OK
Date: Sat, 31 Jul 2010 12:48:21 GMT
Server: Apache
X-Powered-By: PHP/5.2.11
Expires: Sat, 31 Jul 2010 15:48:21 GMT
Cache-Control: max-age=10800, s-maxage=10800, must-revalidate, proxy-revalidate
Content-Encoding: gzip
Vary: Accept-Encoding
Last-Modified: Thu, 18 Mar 2010 21:40:12 GMT
Keep-Alive: timeout=4
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/css

JavaScript

HTTP/1.1 200 OK
Date: Sat, 31 Jul 2010 12:48:21 GMT
Server: Apache
X-Powered-By: PHP/5.2.11
Expires: Sat, 31 Jul 2010 15:48:21 GMT
Cache-Control: max-age=10800, s-maxage=10800, must-revalidate, proxy-revalidate
Content-Encoding: gzip
Vary: Accept-Encoding
Last-Modified: Thu, 18 Mar 2010 21:40:12 GMT
Keep-Alive: timeout=4
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: application/x-javascript

更新

我已经测试了Jumby的建议,并将我的CSS过期设置为1年:

Cache-Control:max-age=31536000, s-maxage=31536000, must-revalidate, proxy-revalidate
Connection:Keep-Alive
Content-Encoding:gzip
Content-Length:4198
Content-Type:text/css
Date:Mon, 02 Aug 2010 20:48:56 GMT
Expires:Tue, 02 Aug 2011 20:48:56 GMT
Keep-Alive:timeout=5, max=99
Last-Modified:Thu, 18 Mar 2010 20:40:12 GMT
Server:Apache/2.2.14 (Win32) PHP/5.3.1
Vary:Accept-Encoding
X-Powered-By:PHP/5.3.1

但是,Chrome仍然声称“明确不可缓存”。


答案 1

3小时的到期时间可能不足以容纳yslow/页面速度的东西,他们可能会抱怨它。我已经在我的网站上看到了静态内容,有效期为4小时和yslow(没有尝试过谷歌的东西)。

大多数人希望版本化静态内容具有较长的过期时间(如1年);看到这里


答案 2

问题在于缓存控制指令的“必须重新验证”部分。摆脱它,你应该很好。


推荐