
Verwenden die meisten gängigen Proxy-ServerZwischenspeichern der Antwortdaten basierend auf dem URI? Lassen Sie uns außerdem HTTP-Header wie Cache-Control usw. ausschließen und davon ausgehen, dass sie auf „öffentlich“ gesetzt wurden, max-age: xxxx s-maxage: yyyyy usw.
Also … vorausgesetzt, der Proxyserver sagt „Diese Ressource muss zwischengespeichert werden“ … was ist der „Schlüssel“? Die URI?
also wenn ich habe
- www.irgendeinedomain.com
- www.somedomain.com/foo
- www.einedomäne.com/foo?
- www.somedomain.com/foo?a=1
- www.somedomain.com/foo?a=1&b=2
sind das alles separate zwischengespeicherte Elemente?
Antwort1
Nach meinem Verständnis handelt es sich dabei meistens um einen Hash von Dingen, die mit der URL in Zusammenhang stehen, wie etwa Name/Adresse des Hosts, Pfad und manchmal andere Optionen wie CGI-Argumente. Laut dieser FAQSquid verwendet einen Hash der direkten URL und die HTTP-Abrufmethode, um Elemente zu identifizieren, die sich bereits im Cache befinden.
Ich denke, dass die von Ihnen aufgelisteten URLs in den meisten Fällen tatsächlich dazu führen würden, dass separate Cache-Elemente erstellt werden.
Antwort2
Ich bin vertraut mitTintenfisch. Es speichert definitiv alle Ihre Beispiel-URIs als separate Objekte. Beachten Sie jedoch, dass es durchaus möglich ist, Squid so zu konfigurieren, dass URIs, die bestimmten Mustern entsprechen, nicht zwischengespeichert werden, z. B. solche, die Folgendes enthalten:?.
Antwort3
Die URL ist definitiv ein Schlüsselparameter, wenn es um das Caching geht. Aus der Sicht eines Webentwicklers kann man das Caching von Webressourcen verhindern, indem man an das Ende der URL eine zufällige Abfragezeichenfolge anhängt.