Web缓存修改我的CSS,JS和HTML文件

时间:2013-07-27 22:14:34

标签: google-app-engine caching web checksum blobstore

我们有一个智能手机应用程序可以从Google的blobstore下载blob并对其进行校验。基本上blob是不可变的,直到被具有新文件名的新版本替换,非常适合缓存。

但是:在极少数情况下(到目前为止一个月内有3次),blob丢失了一些字节。我在HEX模式下验证了一些字节,看起来我们的预压缩JS等文件在被缓存之前通过页速处理器传输(每次失败都减小了相同的大小),并且没有损坏但不能通过size / checksum验证。我们的压缩机在网络的某个地方留下了8个新线,而不是它的邪恶双胞胎。

每个文件只有一个请求进入我们的服务器日志,即使我们多次尝试过。

到目前为止,我还没有发现任何缓存规范允许修改应该缓存的文件。有没有人有关于这种奇怪行为的信息?

是否需要发送no-cache标头才能校验HTML,JS或CSS文件?我们对mp3和jpg内容没有任何问题。

1 个答案:

答案 0 :(得分:0)

我找到了原因:至少有一家手机公司在其移动网络中部署了页速压缩器。 T-Mobile奥地利也可能在德国通过删除换行符和其他空格来修改下载的文件。错误在他们的网络上可靠地再现,但不能同时在WiFi上。运营商也会忽略我们的无缓存标头,唯一的解决方法是使用https!

然而,有时候这不涉及移动运营商,但移动运营商解决了我们的大多数问题。