0

例如,如果我访问 file:///img.png 并且浏览器已经缓存了该文件,是否有任何方法可以从文件系统获得 304 Not Modified(与 200 和文件内容相反)响应?

我的意思是,我可以在不设置通过 http 进行通信的文件服务器的情况下执行此操作吗?或者,这只是文件协议的限制。

4

1 回答 1

1

你不能。这是文件的限制:协议。事实上,该协议没有定义 200 或 304 代码。这些代码特定于http 协议

至于浏览器是否可以使用文件的缓存副本,则由客户端自己负责加载文件资源。没有服务器组件知道文件是否被修改。交互中唯一可以知道的组件是浏览器,而它唯一确定知道的方法是加载文件。

理论上它可以检查时间戳,也许某些浏览器会这样做,但是具有与先前加载相同的时间戳并不能保证文件未被修改。至少在某些系统上,上次修改时间可以通过系统调用来更改。

于 2015-06-08T18:11:21.577 回答