【问题标题】:Do browse served a cached file if its name or contents change?如果名称或内容更改,浏览器是否提供缓存文件?
【发布时间】:2012-06-23 05:52:49
【问题描述】:

对于给定文件(.js、.css 等)设置过期标头的情况以及未设置过期标头的情况,我想知道两个一般性问题:

  1. 仅当文件 name 已更改时,浏览器是否会请求新文件(不提供缓存的文件)?浏览器也不会评估文件内容,对吗?

  2. 所有浏览器在问题 #1 上的行为是否相同,或者是否已知它们之间存在差异,例如在移动设备上(iOS Safari 等)?

谢谢你, 时间

【问题讨论】:

  • 浏览器检查内容的唯一方法是下载文件的新副本,从而刷新缓存。

标签: caching browser browser-cache expires-header


【解决方案1】:
  1. 浏览器无法检查文件内容,除非它下载文件。 (例如,浏览器不请求校验和)。它通常将内容检查(或时间戳检查)的任务委托给服务器。浏览器将发送带有时间戳的 if-modified-since 标头。网络服务器会检查文件是否有变化,如果没有,它会发送一个 304 not modified code。

  2. 所有浏览器都遵循这个基本协议。服务器在决定文件是否已更改的方式上可能会有所不同。

【讨论】:

  • -@user237815,感谢您的回答,最后一个问题:设置或不设置过期标头如何适合此下载或不下载决策树?
  • 好问题。我不知道 expires 标头和 if-modified-since 的交互。规范在这里:w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21
猜你喜欢
  • 2012-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-15
  • 2021-02-16
  • 1970-01-01
相关资源
最近更新 更多