web-dev-qa-db-ger.com

Private vs Public in der Cache-Kontrolle

Können Sie bitte ein Beispiel beschreiben, das den Unterschied zwischen öffentlicher und privater Cachesteuerung in in IIS gehosteten asp.net-Anwendungen zeigt?.

Ich habe in MSDN gelesen, dass der Unterschied der folgende ist:

Public: Legt Cache-Control: public fest, um anzugeben, dass die Antwort von Clients und gemeinsam genutzten (Proxy-) Caches zwischengespeichert werden kann.

Privat: Standardwert. Legt Cachesteuerung: privat fest, um anzugeben, dass die Antwort nur auf dem Client und nicht von gemeinsam genutzten (Proxy-Server-) Caches zwischengespeichert werden kann.

Ich bin nicht sicher, ob ich die Vor- und Nachteile jeder Wahl vollständig verstanden habe. Ein Beispiel dafür, wann man es verwenden soll oder nicht, wäre großartig.

Was kann ich beispielsweise tun, wenn zwei Webserver dieselbe Anwendung hosten? Gibt es etwas zu beachten, wenn ich mich für Privat oder Öffentlich entscheide?

118
ppolyzos

Der einzige Unterschied besteht darin, dass Sie mit Private nicht zulassen, dass Proxies die Daten zwischenspeichern, die sie durchlaufen. Am Ende läuft alles auf die Daten hinaus, die in den von Ihnen gesendeten Seiten/Dateien enthalten sind.

Zum Beispiel könnte Ihr ISP einen unsichtbaren Proxy zwischen Ihnen und dem Internet haben, der Webseiten zwischenspeichert, um die benötigte Bandbreite zu reduzieren und die Kosten zu senken. Mit cache-control: private geben Sie an, dass die Seite nicht zwischengespeichert werden soll (der Endbenutzer kann dies jedoch tun). Wenn Sie cache-control: public verwenden, sagen Sie, dass es für alle in Ordnung ist, die Seite zwischenzuspeichern, sodass der Proxy eine Kopie behalten würde.

Als Faustregel gilt: Wenn es sich um etwas handelt , kann jeder auf die Cache-Steuerung zugreifen (zum Beispiel auf das Logo auf dieser Seite): public ist möglicherweise besser, weil Je mehr Leute es zwischenspeichern, desto weniger Bandbreite wird benötigt. Wenn es sich um etwas handelt, das mit dem verbundenen Benutzer zusammenhängt (zum Beispiel enthält der HTML-Code auf dieser Seite meinen Benutzernamen, sodass er für niemanden von Nutzen ist), ist die Cache-Steuerung besser: privat, da die Proxys Daten zwischenspeichern würden Dies wird von anderen Benutzern nicht angefordert, und sie speichern möglicherweise auch Daten, die Sie nicht möchten, auf Servern, denen Sie nicht vertrauen.

Und natürlich sollte jeder, der nicht öffentlich ist, einen privaten Cache haben. Andernfalls könnten die Daten auf einem mittleren Proxy-Server gespeichert werden, auf den jeder zugreifen kann, der Zugriff darauf hat.

218
salgiza