Die gleichnamige Bildadresse wurde im Projekt geändert / das Bild wird nicht rechtzeitig aktualisiert / warum

1. Problemanalyse

1.1. Analyse 1 Browser-Cache

Die gleichnamige Bildadresse wurde im Projekt geändert und das Bild wurde nicht rechtzeitig aktualisiert.

kann durch Browser-Caching verursacht werden. Der Browser speichert Dateien, auf die zuvor zugegriffen wurde, im Cache. Wenn Sie das nächste Mal auf eine Datei mit demselben Namen zugreifen, wird diese zuerst aus dem Cache gelesen.
Wenn sich dieselbe Bildadresse nicht geändert hat, verwendet der Browser das Bild direkt im Cache, anstatt den Server erneut anzufordern. Dies führte dazu, dass das auf der Seite angezeigte Bild nicht rechtzeitig aktualisiert wurde, nachdem die Adresse des gleichnamigen Bildes geändert wurde.

<img src="image.jpg?v=123456">

Bei jedem Laden wird ein sich nicht wiederholender Parameter zufällig generiert, sodass der Browser davon ausgeht, dass es sich um eine neue Adresse handelt, und diese nicht aus dem Cache liest, sondern den Server erneut auffordert, ein neues Bild herunterzuladen.

1.2. Analyse 2 CDN-Cache

Die gleichnamige Bildadresse wurde im Projekt geändert und das Bild wurde nicht rechtzeitig aktualisiert.

Wenn Ihre Bilder über ein CDN verteilt werden, reicht es möglicherweise nicht aus, den Browser-Cache zu leeren, da das CDN auch eine gewisse Cache-Zeit hat.
Wenn Sie die Image-Adresse mit demselben Namen ändern, läuft der Cache im CDN nicht sofort ab, sondern muss eine bestimmte Zeit warten, bevor er aktualisiert wird. Daher müssen Sie den CDN-Cache leeren, um das Problem zu lösen, dass nach einer Änderung der Adresse des Bildes mit demselben Namen keine Aktualisierung rechtzeitig möglich ist.

Verschiedene CDN-Anbieter verfügen möglicherweise über unterschiedliche Methoden zum Löschen des Caches. Die meisten CDN-Anbieter bieten sehr praktische Cache-Aktualisierungstools. Sie müssen nur die URL oder das Verzeichnis eingeben, die Sie aktualisieren möchten, und dann auf die Schaltfläche „Aktualisieren“ klicken. Im Allgemeinen dauert es eine gewisse Zeit, bis die CDN-Aktualisierung wirksam wird. Die genaue Zeit hängt von der Aktualisierungsstrategie und der Cache-Zeit des CDN-Anbieters ab.

1.3. Analyse 3 CDN-Cache

Die von einigen Benutzern angeforderten Bilder sind neu und die von einigen Benutzern angeforderten Bilder sind alt. Was ist der Grund?

Diese Situation wird höchstwahrscheinlich dadurch verursacht, dass der CDN-Cache nicht vollständig aktualisiert wird.
Wenn Sie die Image-Adresse mit demselben Namen ändern, läuft der Cache im CDN nicht sofort ab, sondern muss eine bestimmte Zeit warten, bevor er aktualisiert wird. Während dieses Vorgangs fordern einige Benutzer möglicherweise alte zwischengespeicherte Bilder an und einige Benutzer fordern möglicherweise neue Bilder an.

Um dieses Problem zu lösen, müssen Sie sicherstellen, dass alle Benutzer die neuesten Bilder anfordern können, indem Sie den CDN-Cache leeren. Die spezifischen Cache-Löschmethoden verschiedener CDN-Anbieter können variieren, sie bieten jedoch grundsätzlich ein Cache-Aktualisierungstool. Sie können die URL oder das Verzeichnis eingeben, die Sie aktualisieren möchten, und dann auf die Schaltfläche „Aktualisieren“ klicken, um den Cache zu leeren. Bitte beachten Sie, dass es eine gewisse Zeit dauert, bis die CDN-Aktualisierung wirksam wird. Die genaue Zeit hängt von der Aktualisierungsrichtlinie und der Cache-Zeit des CDN-Anbieters ab.

1.4. Analyse 4: Die Interaktion zwischen Browser-Caching und CDN-Caching

Derselbe Benutzer sieht manchmal das neue und manchmal das alte. Warum?

Wenn derselbe Benutzer zu unterschiedlichen Zeiten dasselbe Bild anfordert und manchmal das neue und manchmal das alte sieht, kann dies an der Interaktion zwischen dem Browser-Cache und dem CDN-Cache liegen.

Wenn der Browser ein Bild anfordert, prüft er zunächst, ob in seinem eigenen Cache ein Cache vorhanden ist, der dem Bild entspricht. In diesem Fall verwendet er den Cache direkt und fordert kein neues Bild vom Server an. Die Aktualisierungszeit des CDN-Cache kann relativ lang sein. Wenn sich also noch alte Bilder im CDN-Cache befinden, sieht der Benutzer die alten Bilder, bevor der Browser-Cache abläuft.

Die Lösung für dieses Problem besteht darin, den Cache Ihres Browsers zu leeren. Wenn Sie sicherstellen möchten, dass Benutzer die neuesten Bilder sehen können, können Sie nach dem Ändern der Bildadresse eine Zufallszahl oder einen Zeitstempel als Teil der Bildadresse hinzufügen. Dadurch können die Auswirkungen des Browsers und des CDN-Cache vermieden und der Browser gezwungen werden, erneut zu arbeiten. Fordern Sie neue Bilder an. Bild von.

1.5. Analyse 5 Knoten, die auf CDN zugreifen

Derselbe Benutzer sieht manchmal das neue und manchmal das alte. Warum?

Der besuchte CDN-Knoten kann Einfluss darauf haben, ob der Inhalt, den der Benutzer sieht, neu oder alt ist.
CDN ist eine Technologie, die die Geschwindigkeit des Website-Zugriffs durch Zwischenspeichern von Inhalten verbessert. Es wählt den nächstgelegenen CDN-Knoten aus, um Inhalte basierend auf dem Standort des Benutzers bereitzustellen.
Wenn ein CDN-Knoten alte Inhalte zwischenspeichert, sehen Benutzer möglicherweise die alten Inhalte, wenn sie sie besuchen, während andere CDN-Knoten, die neue Inhalte zwischenspeichern, den Benutzern neue Inhalte bereitstellen können.
Daher hat der besuchte CDN-Knoten einen gewissen Einfluss darauf, ob der Inhalt, den der Benutzer sieht, neu oder alt ist.

2. Probleme lösen

2.1. Methode 1

Sie können einfach die Bildadresse, den CDN-Cache und den CDN-Torrent ändern

<img src="image1.jpg">

2.2. Methode 2 

<img src="image.jpg?v=123456">

2.3. Methode drei

Sie können starke Caching- und ausgehandelte Caching-Mechanismen verwenden, um den Gültigkeitszeitraum und die Aktualisierungsmethode des Browser-Caches zu steuern.​ 

2.4. Methode 4

CDN-Cache leeren

2.5. Methode fünf

Wenn Sie es nicht eilig haben, können Sie warten~

3. Prozessaufzeichnungen

Datensatz 1. So steuern Sie den Gültigkeitszeitraum und die Aktualisierungsmethode des Browser-Cache mithilfe von starken Cache- und ausgehandelten Cache-Mechanismen.

Starkes Caching und ausgehandeltes Caching sind zwei Mechanismen, die steuern, wie lange Browser-Caches gültig sind und wie sie aktualisiert werden.

Starkes Caching

Starkes Caching wird durch das Setzen der Felder „Cache-Control“ und „Expires“ im Antwortheader erreicht. Wenn Sie den Antwortheader auf der Serverseite festlegen, können Sie den Gültigkeitszeitraum und die Aktualisierungsmethode des Browser-Cache steuern, indem Sie die Felder „Cache-Control“ und „Expires“ festlegen. Wenn die Felder „Cache-Control“ und „Expires“ festgelegt sind, bestimmt der Client bei der Anforderung von Ressourcen zunächst anhand dieser beiden Felder, ob der Cache verwendet werden soll.

Das Feld „Läuft ab“ gibt die Ablaufzeit an, bei der es sich um einen bestimmten Zeitpunkt handelt. Zum Beispiel: Läuft ab: Mi, 21. Okt. 2023 07:28:00 GMT. Dieser Zeitpunkt ist die serverseitige Zeit. Wenn die aktuelle Zeit vor der Ablaufzeit liegt, verwendet der Browser den Cache, andernfalls fordert er den Server an.

Das Feld „Cache-Control“ wurde in HTTP/1.1 eingeführt und es können mehrere Parameter festgelegt werden, um das Cache-Verhalten zu steuern. Die wichtigeren sind:

max-age: Gibt die maximale Gültigkeitsdauer des Caches in Sekunden an. Beispiel: Cache-Control: max-age=3600 bedeutet Caching für 1 Stunde. Wenn die Ressource innerhalb dieser Zeit erneut angefordert wird, verwendet der Browser den Cache. öffentlich: Zeigt an, dass die Antwort zwischengespeichert werden kann, einschließlich Client-Cache und Proxy-Server-Cache. privat: Gibt an, dass die Antwort nur vom Client und nicht vom Proxyserver zwischengespeichert werden kann.

Cache aushandeln

Das Aushandeln des Cachings wird durch das Festlegen der Felder „Last-Modified“ und „ETag“ im Antwortheader erreicht. Wenn Sie den Antwortheader auf der Serverseite festlegen, können Sie den Gültigkeitszeitraum und die Aktualisierungsmethode des Browser-Cache steuern, indem Sie die Felder „Last-Modified“ und „ETag“ festlegen. Wenn die Felder „Last-Modified“ und „ETag“ festgelegt sind und der Client Ressourcen anfordert, sendet er zunächst eine Anfrage an den Server, und der Server verwendet „If-Modified-Since“ (den Wert von „Last-Modified“) und „If-None-“. Übereinstimmung in dieser Anfrage. Das Feld (ETag-Wert) wird mit der Ressource auf dem Server verglichen. Wenn sie identisch sind, bedeutet dies, dass die Ressource nicht aktualisiert wurde und Caching verwendet werden kann; andernfalls bedeutet dies, dass die Ressource aktualisiert wurde , und der Server gibt den Ressourceninhalt zurück und legt einen neuen Wert im Antwortheader fest. Felder „Last-Modified“ und „ETag“.

Starker Cache und ausgehandelter Cache können den Gültigkeitszeitraum und die Aktualisierungsmethode des Browser-Caches steuern, indem sie unterschiedliche Cache-Header festlegen. Die spezifischen Einstellungen können entsprechend dem tatsächlichen Anwendungsszenario angepasst werden.

Datensatz 2: CDN Torrent verstehen

Von CDN-Flooding spricht man, wenn ein CDN-Server (Content Delivery Network) über einen bestimmten Zeitraum eine große Anzahl von Anfragen erhält. Zu den gängigen Problemumgehungen gehören:

1. Erhöhen Sie die Anzahl der CDN-Server: Durch die Erhöhung der Anzahl der CDN-Server können Sie die Verkehrslast teilen und die Reaktionsgeschwindigkeit und Stabilität verbessern.

2. Cache optimieren: Die Optimierung des CDN-Cache kann Serveranfragen reduzieren und die Serverlast und Antwortzeit reduzieren.

3. Verwenden Sie den Lastenausgleich: Durch die Verwendung eines Lastenausgleichs können Anforderungen auf verschiedene CDN-Server verteilt werden, um CDN-Fluten besser bewältigen zu können.

4. Strombegrenzung: Durch die Begrenzung der Anzahl der Anfragen pro Sekunde können Sie die Auswirkungen von CDN-Flooding reduzieren und den CDN-Server vor Überlastungsangriffen schützen.

5. Verwenden Sie spezielle Lösungen von CDN-Anbietern: Einige CDN-Anbieter bieten spezielle Lösungen an, darunter adaptive Scheduler, Vorwärmung, dynamische Verteidigung usw., um Unternehmen bei der Lösung von Problemen wie CDN-Flooding zu unterstützen.

4. Willkommener Austausch und Korrekturen

Supongo que te gusta

Origin blog.csdn.net/snowball_li/article/details/134563019
Recomendado
Clasificación