Heim  >  Artikel  >  php教程  >  Vertiefendes Verständnis des HTTP-Protokolls und prinzipielle Analyse des Cachings

Vertiefendes Verständnis des HTTP-Protokolls und prinzipielle Analyse des Cachings

高洛峰
高洛峰Original
2016-12-12 11:26:361012Durchsuche

3.2 Implementierungsprinzip des Cache

3.2.1 Was ist Web-Cache

WEB-Cache (Cache) befindet sich zwischen dem Webserver und dem Client.

Der Cache speichert eine Kopie des Ausgabeinhalts entsprechend der Anfrage, z. B. HTML-Seite, Bild, Datei. Wenn die nächste Anfrage eintrifft: Wenn es sich um dieselbe URL handelt, verwendet der Cache die Kopie direkt um auf die Zugriffsanfrage zu antworten, anstatt sie an die Quelle zu senden. Der Server sendet die Anfrage erneut.

Das HTTP-Protokoll definiert relevante Nachrichtenheader, damit das WEB-Caching so gut wie möglich funktioniert.

3.2.2 Vorteile des Cachings

Reduzierte Antwortlatenz: Da Anfragen vom Cache-Server (näher am Client) und nicht vom Ursprungsserver beantwortet werden, nimmt dieser Prozess weniger Zeit in Anspruch, sodass die web Der Server scheint schneller zu reagieren.

Netzwerkbandbreitenverbrauch reduzieren: Durch die Wiederverwendung von Replikaten wird der Bandbreitenverbrauch des Clients reduziert; Kunden können Bandbreitenkosten sparen, das Wachstum des Bandbreitenbedarfs kontrollieren und die Verwaltung vereinfachen.

3.2.3 HTTP-Erweiterungsheader im Zusammenhang mit dem Cache

Läuft ab: Gibt die Zeit an, zu der der Antwortinhalt abläuft, Greenwich Mean Time GMT

Cache-Kontrolle: Detailliertere zwischengespeicherte Kontrolle Inhalt

Last-Modified: Der Zeitpunkt, zu dem die Ressource in der Antwort zuletzt geändert wurde

ETag: Der Prüfwert der Ressource in der Antwort, der in einem bestimmten Zeitraum eindeutig identifiziert wird auf dem Server.

Datum: Serverzeit

If-Modified-Since: Die Zeit, zu der die Ressource, auf die der Client zugreift, zuletzt geändert wurde, identisch mit „Last-Modified“.

If-None-Match: Der Prüfwert der Ressource, auf die der Client zugreift, identisch mit ETag.

3.2.4 Allgemeine Prozesse, damit das Client-Caching wirksam wird

Wenn der Server die Anfrage empfängt, sendet er die Last-Modified- und ETag-Header der Ressource in 200OK und des Clients zurück speichert die Ressource im Cache und zeichnet diese beiden Attribute auf. Wenn der Client dieselbe Anfrage senden muss, enthält die Anfrage zwei Header: If-Modified-Since und If-None-Match. Die Werte der beiden Header sind die Werte der Last-Modified- und ETag-Header in der Antwort. Der Server stellt anhand dieser beiden Header fest, dass sich die lokale Ressource nicht geändert hat und der Client sie nicht erneut herunterladen muss, und gibt eine 304-Antwort zurück. Der allgemeine Prozess ist in der folgenden Abbildung dargestellt:

Vertiefendes Verständnis des HTTP-Protokolls und prinzipielle Analyse des Cachings

3.2.5 Web-Caching-Mechanismus

Der Zweck des Cachings in HTTP/1.1 besteht darin, das Senden von Anfragen zu reduzieren In vielen Fällen ist es möglicherweise nicht erforderlich, eine vollständige Antwort zu senden. Ersteres reduziert die Anzahl der Netzwerkschleifen; HTTP nutzt zu diesem Zweck einen „Ablauf“-Mechanismus. Letzteres reduziert die Bandbreite von Netzwerkanwendungen; HTTP nutzt zu diesem Zweck einen „Validierungs“-Mechanismus.

HTTP definiert 3 Caching-Mechanismen:

1) Aktualität: Ermöglicht die erneute Überprüfung einer Antwortnachricht auf dem Quellserver und kann vom Server und Client gesteuert werden. Beispielsweise gibt der Expires-Antwortheader die Zeit an, zu der ein Dokument nicht verfügbar war. Das Max-Age-Flag in Cache-Control gibt die maximale Zeit für das Caching an;

2) Validierung: Wird verwendet, um zu überprüfen, ob eine zwischengespeicherte Antwort noch verfügbar ist. Wenn eine Antwort beispielsweise einen Last-Modified-Antwortheader hat, kann der Cache mithilfe von If-Modified-Since feststellen, ob er sich geändert hat, um so zu bestimmen, ob die Anfrage entsprechend der Situation gesendet werden soll 3) Invalidierung: Bei einer anderen Anfrage durch den Cache kommt es manchmal zu einem Nebeneffekt. Wenn beispielsweise eine URL mit einer zwischengespeicherten Antwort verknüpft ist, auf die jedoch POST-, PUT- und DELETE-Anfragen folgen, läuft der Cache ab.

3.3 Implementierungsprinzipien des Breakpoint-Resume-Downloads und des Multi-Thread-Downloads

Die GET-Methode des HTTP-Protokolls unterstützt das Anfordern nur eines bestimmten Teils einer Ressource;

206 Teilinhaltsteil Inhaltsantwort;

Bereich der angeforderten Ressourcen;

Inhaltsbereich der Antwortressourcen;

Wenn die Verbindung getrennt und wieder hergestellt wird, fordert der Client nur die Ressource an, nicht jedoch den Download den Teil, anstatt die gesamte Ressource erneut anzufordern, um eine Wiederaufnahme des Haltepunkts zu erreichen.

Blockierte Anforderungsressourceninstanz:

Eg1: Bereich: Bytes=306302-: Fordern Sie diese Ressource von 306302 Bytes bis zum Ende an;

Eg2: Inhaltsbereich: Bytes 306302 -604047/604048: Die Antwort zeigt an, dass die Bytes 306302-604047 der Ressource übertragen werden und die Ressource insgesamt 604048 Bytes hat.

Der Client fordert dieselbe Ressource über gleichzeitige Anforderungen an Implementieren Sie das gleichzeitige geblockte Herunterladen einer bestimmten Ressource. Um den Zweck des schnellen Herunterladens zu erreichen. Die derzeit beliebten FlashGet und Thunder nutzen grundsätzlich dieses Prinzip.

Das Prinzip des Multithread-Downloads:

Das Download-Tool öffnet mehrere Threads, die HTTP-Anfragen ausgeben;

Jede http-Anfrage fordert nur einen Teil der Ressourcendatei an: Inhalt -Bereich: Bytes 20000-40000/47000;

Von jedem Thread heruntergeladene Dateien zusammenführen.

3.4 https-Kommunikationsprozess

3.4.1 Was ist https?

HTTPS (vollständiger Name: Hypertext Transfer Protocol over Secure Socket Layer) ist ein HTTP-Kanal, der auf Sicherheit abzielt Kurz gesagt, es handelt sich um eine sichere Version von HTTP. Das heißt, die SSL-Schicht wird zu HTTP hinzugefügt. Die Sicherheitsgrundlage von HTTPS ist SSL. Einzelheiten zur Verschlüsselung finden Sie daher unter SSL.

Siehe das Bild unten:

Vertiefendes Verständnis des HTTP-Protokolls und prinzipielle Analyse des CachingsDie von https verwendete Portnummer ist 443.

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