2

我使用 ASP.NET 作为 IOS 和 Android 的服务器,它使用 ETag 和 If-None-Match 标头返回 304 或 200。当我在 Chrome 开发工具和远程调试 Android WebView 上检查这个时,一切正常意味着他正在发送 If -None-Match 请求标头。但是在 Safari 和远程调试 IOS UIWebView 中做同样的事情总是不发送 If-None-Match 标头。If-None-Match 标头是否在 IOS 中不起作用。Safari 中的结果相同

编辑:这是 Safari 中的响应标头,

Cache-Control:private
Content-Encoding:gzip
Content-Length:448
Content-Type:text/html; charset=utf-8
Date:Wed, 19 Jun 2013 09:27:46 GMT
Etag:00amyWGct0y_ze4lIsj2Mw
Server:Microsoft-IIS/7.5
Vary:Accept-Encoding
X-AspNet-Version:4.0.30319
X-Powered-By:ASP.NET
4

3 回答 3

1

这里开始

警告 几年前,ETags 主要由代理使用,而不是浏览器。由于浏览器支持的增加,ETags 的价值慢慢增长。但请记住,并非所有浏览器都支持 ETag。例如,Apple 的 Safari 不支持它们。如果您希望大量 Safari 用户访问您的网站,您可以考虑提供 Last-Modified 标头并检查 If-Modified-Since 标头以及使用 ETags

于 2013-06-19T13:49:39.267 回答
0

检查此图表以确定其版本是否存在特定问题

http://www.yuiblog.com/blog/2010/06/28/mobile-browser-cache-limits/

于 2013-06-28T05:01:57.340 回答
0

您的 ETag 标头字段值在语法上不正确。也许这就是 Safari 忽略它的原因(这很好!)。

另一个原因可能是无法正确处理“Vary”(这肯定会影响某些版本的 IE)。

于 2013-06-19T14:29:17.730 回答