2 votes

IOS UIWebView et Safari n'envoient pas de If-None-Match, mais Android WebView et Chrome le font.

J'utilise ASP.NET comme serveur pour IOS et Android, qui utilise ETag et l'en-tête If-None-Match pour renvoyer 304 ou 200. Lorsque je vérifie cela sur Chrome Dev Tool et sur remote Debug Android WebView, tout fonctionne, ce qui signifie qu'il envoie l'en-tête de requête If-None-Match. Mais si je fais la même chose dans Safari et dans remote debug IOS UIWebView, l'en-tête If-None-Match n'est jamais envoyé. L'en-tête If-None-Match ne fonctionne pas sous IOS. Même résultat dans Safari

Edita: Voici les en-têtes de réponse dans 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

1voto

user960567 Points 4598

De aquí ,

Attention Il y a quelques années, les ETags étaient surtout utilisés par les proxies et pas autant par les navigateurs. La valeur des ETags augmente lentement en raison de la prise en charge croissante par les navigateurs. Gardez à l'esprit que tous les navigateurs ne supportent pas les ETags, cependant. Par exemple, Safari d'Apple ne les prend pas en charge. Vous pouvez envisager de fournir des en-têtes Last-Modified et de vérifier les en-têtes If-Modified-Since en plus de l'utilisation des ETags si vous vous attendez à ce qu'un grand nombre d'utilisateurs de Safari visitent votre site.

0voto

Julian Reschke Points 12698

La valeur de votre champ d'en-tête ETag est syntaxiquement incorrecte. C'est peut-être pour cela que Safari l'ignore (ce qui serait une bonne chose !).

Une autre raison pourrait être l'incapacité à gérer correctement les "Vary" (cela affecte définitivement certaines versions d'IE).

0voto

Chief Points 592

Consultez ce tableau pour déterminer si le problème est spécifique à une version.

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X