从文件协议获取 304 响应的方法
Way to get 304 responses from file protocol
有没有办法从文件系统获得 304 Not Modified(而不是 200 和文件内容)响应,例如,如果我访问 file:///img.png 和浏览器已经缓存了这个文件?
我的意思是,我可以在不设置通过 http 通信的文件服务器的情况下执行此操作吗?或者,这只是文件协议的限制。
你不能。这是文件的限制:协议。事实上,该协议并没有定义 200 或 304 代码。这些代码特定于 http protocol.
至于浏览器是否可以使用文件的缓存副本,客户端负责自行加载文件资源。没有服务器组件知道文件是否被修改。交互中唯一可以知道的组件是浏览器,唯一确定的方法是加载文件。
理论上它可以检查时间戳,也许某些浏览器会这样做,但是与之前加载的时间戳相同并不能保证文件未被修改。至少在某些系统上,可以通过系统调用更改最后修改时间。
有没有办法从文件系统获得 304 Not Modified(而不是 200 和文件内容)响应,例如,如果我访问 file:///img.png 和浏览器已经缓存了这个文件?
我的意思是,我可以在不设置通过 http 通信的文件服务器的情况下执行此操作吗?或者,这只是文件协议的限制。
你不能。这是文件的限制:协议。事实上,该协议并没有定义 200 或 304 代码。这些代码特定于 http protocol.
至于浏览器是否可以使用文件的缓存副本,客户端负责自行加载文件资源。没有服务器组件知道文件是否被修改。交互中唯一可以知道的组件是浏览器,唯一确定的方法是加载文件。
理论上它可以检查时间戳,也许某些浏览器会这样做,但是与之前加载的时间戳相同并不能保证文件未被修改。至少在某些系统上,可以通过系统调用更改最后修改时间。