【问题标题】:IOS UIWebView and Safari is not sending If-None-Match but Android WebView and Chrome doesIOS UIWebView 和 Safari 不发送 If-None-Match 但 Android WebView 和 Chrome 发送
【发布时间】:2013-06-19 07:30:04
【问题描述】:

我使用 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

【问题讨论】:

    标签: android iphone asp.net http safari


    【解决方案1】:

    来自here

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

    【讨论】:

    • 这听起来非常非常误导。 ETags 已经支持很长时间了。
    • 意思是书比较错。请用您的机器对其进行测试,然后向我发送一个带有 ETag 的示例响应标头,这对您有用。
    • @JulianReschke 你可以安装这个并检查
    【解决方案2】:

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

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

    【讨论】:

    • 您是否在 Safari 中测试了一个样本,并让我知道 ETags 在 Safari 中是否有效。请参阅我的回答,即 Safari 没有实现 ETags。
    • 我没有当前的 Safari。
    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 2012-11-27
      • 2014-05-09
      • 2012-07-18
      • 2021-07-05
      • 2013-08-27
      • 2015-06-16
      • 2011-01-07
      • 2019-08-26
      • 2018-11-18
      相关资源
      最近更新 更多