Heim  >  Artikel  >  Web-Frontend  >  Warum speichert Safari POST-Anfragen in iOS 6 trotz „cache:false“ zwischen?

Warum speichert Safari POST-Anfragen in iOS 6 trotz „cache:false“ zwischen?

DDD
DDDOriginal
2024-11-03 21:12:03188Durchsuche

Why Does Safari Cache POST Requests in iOS 6 Despite

Caching-Rätsel: Safaris selektiver Abruf in iOS 6

Seit der Veröffentlichung von iOS 6 sind Entwickler auf ein unerwartetes Verhalten in der Webansicht von Safari gestoßen: $ .ajax-POST-Aufrufe werden trotz der Cache:false-Einstellungen hartnäckig zwischengespeichert. Interessanterweise manifestiert sich diese Anomalie nur, wenn die aufgerufene Funktion eine statische Signatur verwendet.

Vorläufige Untersuchungen ergaben, dass Safari POST-Antworten nur dann zwischenspeichert, wenn ihnen Cache-Control- oder Expires-Header fehlen oder wenn Cache-Control auf max-age eingestellt ist =0. Durch die Gewährung der Anforderung „Cache-Control: no-cache“ wird dieses Verhalten jedoch umgangen und das Caching insgesamt verhindert.

Apples Entscheidung, diese HTTP-Spezifikationsbestimmung für POST-Methoden zu nutzen (Abschnitt 9.5), hat die Entwickler verwirrt. Während das Zwischenspeichern von POST-Antworten keine Seltenheit ist, scheint die Entscheidung von Safari, dies ohne Header oder mit max-age=0 zu tun, eine Abweichung vom herkömmlichen Browserverhalten zu sein.

Um dieses Caching-Dilemma zu lösen, gibt es eine globale Lösung Eine Apache-Konfiguration sieht wie folgt aus:

Header set Cache-Control "no-cache"

Wenn jedoch die selektive Anwendung der „no-cache“-Direktive nur auf POST-Anfragen bevorzugt wird, bietet Apache eine Lösung:

SetEnvIf Request_Method "POST" IS_POST
Header set Cache-Control "no-cache" env=IS_POST

Alternativ kann das Hinzufügen eines eindeutigen Parameters zu den URL- oder POST-Daten das Caching-Problem für statische Funktionssignaturen umgehen.

Das obige ist der detaillierte Inhalt vonWarum speichert Safari POST-Anfragen in iOS 6 trotz „cache:false“ zwischen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn