2010-11-23 5 views
0

Ich verwende Response-Header, um sicherzustellen, dass die Seite nicht im Browser-Ende zwischengespeichert wird, ich habe den folgenden Code verwendet, um das zu tun. Kann mir jemand bitte lassen Sie mich wissen,HTTP-Caching-Fragen

  1. Wie zu testen, ob es funktioniert? oder nicht arbeiten?
  2. Stoppt auch das Caching für CSS- und JS-Dateien.
  3. Kann jemand bitte ausarbeiten, wie diese Zwischenspeicherung funktioniert? In Windows haben wir temperearische Internetdateien, hat es etwas damit zu tun.

    Response.CacheControl = "no-cache, no-store";

    Response.AddHeader("Pragma", "no-cache");

    Response.Expires = -1;

+0

Welche tatsächlichen Headerfelder erzeugt dieser Code? – Gumbo

Antwort

3

Go lesen Mark Nottingham's excellent tutorial.

Response.CacheControl = "no-cache, no-store"; 

sollte

Response.CacheControl = "no-cache, no-store, must-revalidate"; 

und

Response.AddHeader("Pragma", "no-cache"); 

ist sinnlos - obwohl es von vielen Websites vorgeschlagen werden (Manual - es ist ein Kopf REQUEST - keine Antwort-Header).

Response.Expires = -1; 

ist nur relevant für HTTP/1.0-Clients - die meisten gängigen Browser respektieren immer noch die HTTP/1.1-Antworten (Cache-Steuerung) Header, auch wenn die HTTP/1.0-Stack verwenden. Wenn keine Caching-Informationen vorhanden sind, sollte ein Brwser die Antwort nicht zwischenspeichern. Daher sollte es vollkommen sicher sein, dies wegzulassen.

Wie testen, ob es funktioniert?

Blick auf Ihren Webserver-Log-Dateien oder Verwendung wireshark oder iehttpheaders zu sehen, ob der Browser jedes Mal an den Server zurück Inhalt referenziert wird

Ist es hält auch das Caching für CSS und JS fils .

Ja - Caching-Informationen sind unabhängig vom Namen der Datei und ihrem MIME-Typ.

0

Eine Teilübereinstimmung: Um Ihre Antwortheader zu überprüfen, empfehle ich Ihnen, wenn Sie Firefox verwenden, die Firebug-Erweiterung, mit der Sie den gesamten HTTP-Zyklus verfolgen können, einschließlich Anforderungs- und Antwortheader und HTTP-Antwortstatuscode.

1

Es gibt keine Möglichkeit, dass nichts zu machen, ist durch den Browser im Cache gespeichert

Mit allen Mitteln Sie den Browser nicht mit Response-Header anweisen kann, aber man kann es nicht garantieren, wird auf allen Browsern alle Szenarien.

Wenn Sie die Gründe erklären (verhindert die Verwendung der Rücktaste?) Wir können eine anständige Lösung finden.