Heim  >  Artikel  >  Backend-Entwicklung  >  Bei HTTP 200 aus dem Cache tritt ein seltsames Problem auf.

Bei HTTP 200 aus dem Cache tritt ein seltsames Problem auf.

WBOY
WBOYOriginal
2016-09-05 08:59:541189Durchsuche

Verwendeter Browser: Chrome auf dem PC, verschiedene Browser auf dem Mobiltelefon
Besuchen Sie dieselbe URL-Adresse: http://xxx.aaa.bbb.com/ship.html

In der Testumgebung: Einige Schüler besuchten diese Adresse. Bei einem erneuten Besuch wurden auf der Seite immer noch die Daten vom letzten Besuch der Seite angezeigt, bei denen es sich nicht um die neuesten Daten handelte. Überprüfen Sie die HTTP-Adresse. Es gibt mehrere wichtige Parameter wie folgt: 200, aus dem Cache. Jedes Mal, wenn einige Schüler diese Adresse besuchen, werden auf der Seite jedoch nicht die neuesten Daten angezeigt. Bei der Überprüfung mehrerer wichtiger http-Parameter wird der Cache nicht angezeigt.

aus dem Cache Ich verstehe, aber was ich nicht verstehe, ist, warum einige Schüler beim Zugriff auf denselben Server aus dem Cache angezeigt werden, während andere beim Zugriff die neuesten Seitendaten vom Server laden. Was hat das damit zu tun und was beeinflusst es?

Hinweis:

  • In der offiziellen Online-Umgebung besteht dieses Problem nicht, der Zugriff ist normal und die neuesten Seitendaten werden jedes Mal vom Server geladen.

  • ship.html ist keine reine statische Seite, sondern pseudostatisch.

  • Die folgenden Header wurden gesetzt:
    <meta http-equiv="Expires" content="-1">
    <meta http-equiv="Cache-Control" content="no-cache">
    <meta http-equiv="Pragma" content="no-cache">

Antwortinhalt:

Verwendeter Browser: Chrome auf dem PC, verschiedene Browser auf dem Mobiltelefon
Besuchen Sie dieselbe URL-Adresse: http://xxx.aaa.bbb.com/ship.html

In der Testumgebung: Einige Schüler besuchten diese Adresse. Bei einem erneuten Besuch wurden auf der Seite immer noch die Daten vom letzten Besuch der Seite angezeigt, bei denen es sich nicht um die neuesten Daten handelte. Überprüfen Sie die HTTP-Adresse. Es gibt mehrere wichtige Parameter wie folgt: 200, aus dem Cache. Jedes Mal, wenn einige Schüler diese Adresse besuchen, werden auf der Seite jedoch nicht die neuesten Daten angezeigt. Bei der Überprüfung mehrerer wichtiger http-Parameter wird der Cache nicht angezeigt.

aus dem Cache Ich verstehe, aber was ich nicht verstehe, ist, warum einige Schüler beim Zugriff auf denselben Server aus dem Cache angezeigt werden, während andere beim Zugriff die neuesten Seitendaten vom Server laden. Was hat das damit zu tun und was beeinflusst es?

Hinweis:

  • In der offiziellen Online-Umgebung besteht dieses Problem nicht, der Zugriff ist normal und die neuesten Seitendaten werden jedes Mal vom Server geladen.

  • ship.html ist keine rein statische Seite, sondern pseudostatisch.

  • Die folgenden Header wurden gesetzt:
    <meta http-equiv="Expires" content="-1">
    <meta http-equiv="Cache-Control" content="no-cache">
    <meta http-equiv="Pragma" content="no-cache">

Wenn der Server die Cache-Steuerung nicht klar definiert, verfügen verschiedene Clients möglicherweise über unterschiedliche Caching-Mechanismen.
Wenn Sie möchten, dass Benutzer jedes Mal die neuesten Daten erhalten, können Sie das Meta-Tag wie folgt festlegen:

<code class="html"><meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" /></code>

Das Festlegen des Meta-Tags ist nur für HTML-Seiten wirksam. Eine bessere Möglichkeit besteht darin, die Cache-Steuerung im HTTP-Antwortheader festzulegen:

<code class="http">Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Expires: 0</code>

PHP legt den HTTP-Antwort-Header-Code fest:

<code class="php">header("Cache-Control: no-cache, no-store, must-revalidate"); // HTTP 1.1.
header("Pragma: no-cache"); // HTTP 1.0.
header("Expires: 0"); // Proxies.</code>

Die Verwendung von Caching kann dazu beitragen, das Laden von Seiten zu beschleunigen und den Ressourcenverbrauch zu reduzieren. Sie sollten Ihre Caching-Strategie an die jeweilige Situation anpassen.

Referenz

http://stackoverflow.com/ques...
http://stackoverflow.com/ques...

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