Angenommen, mehrere browserbasierte Worker öffnen verschiedene Seiten derselben Website. Diese Seiten verweisen auf dasselbe Stylesheet, Logo und Skriptpaket. Ein geteilter Forward-Cache kann den ersten Abruf für spätere Worker nutzbar machen, wenn die Antworten wiederverwendbar sind.

Ändern Sie nun die Arbeitslast: Jeder Worker lädt nur ein HTML-Dokument und ruft die verlinkten Ressourcen nie ab. Das gemeinsame Stylesheet steht weiterhin im Markup, aber kein Worker fragt es an. Es trägt nichts zur Cache-Trefferquote des Proxys bei.

Beginnen Sie mit den Anfragen, die Ihr Crawler tatsächlich stellt

Ein Browser, der eine Seite rendert, und ein HTTP-Client, der deren Quelle abruft, erzeugen unterschiedliche Anfragemengen. Prüfen Sie diese Mengen, bevor Sie ein Cache-Design wählen.

ArbeitslastPotenzial für gemeinsame Wiederverwendung
Worker rufen wiederholt dieselben öffentlichen Assets abNützlich, wenn Aktualitäts- und Cache-Key-Regeln es zulassen
Jede Anfrage hat eine eindeutige URL oder AntwortvarianteWenig Überschneidung zur Wiederverwendung
Eine Antwort muss vor der Wiederverwendung revalidiert werdenKann Antwortbytes sparen, erfordert aber weiterhin einen Upstream-Roundtrip
Worker bedienen Anfragen bereits aus ihrem lokalen CacheDiese Anfragen erreichen den geteilten Proxy möglicherweise nie

URL-Gleichheit allein genügt nicht. Die Aktualitätsrichtlinie der Antwort und die von Vary benannten Felder können Repräsentationen unterscheiden. Private, nicht speicherbare oder authentifizierte Inhalte benötigen die geltenden Regeln für geteilte Caches; sie dürfen nicht in ein einziges öffentliches Ergebnis gezwungen werden, nur um die Trefferzahl zu erhöhen.

Bei gewöhnlichem HTTPS-CONNECT-Verkehr führt der Forward-Proxy einen verschlüsselten Tunnel und enthält darin keine HTTP-Objekte zum Zwischenspeichern. Ein Deployment mit TLS-Inspektion hat ein anderes Vertrauens- und Verarbeitungsverhalten. Beziehen Sie den tatsächlichen Modus ein, wenn Sie beurteilen, ob Objekt-Caching verfügbar ist.

Ein Cache-Treffer kann einen Upstream-Abruf vermeiden, während ein Fehltreffer die Arbeit des Intermediärs weiterhin kostet. Vergleichen Sie abgeschlossene nutzbare Bytes, Upstream-Verkehr und Latenz für die vorgesehene Arbeitslast. Die Thread-Anzahl beschreibt Nebenläufigkeit; sie beschreibt nicht, wie viel wiederverwendbarer Inhalt diese Threads teilen.

Ähnliche Artikel