Für Ihre letzte Frage, warum? Ich werde versuchen, mit dem zu erklären, was ich weiß
Eine kurze Erklärung dieser drei Statuscodes in Laienbegriffen.
- 200 - Erfolg (Browseranfragen und Abrufen der Datei vom Server)
Wenn das Caching auf dem Server aktiviert ist
- 200 (aus dem Speichercache) - Datei im Browser gefunden, sodass der Browser keine Anforderung vom Server ausführt
- 304 - Browser fordert eine Datei an, die jedoch vom Server abgelehnt wird
Bei einigen Dateien entscheidet sich der Browser für eine Anforderung vom Server und bei einigen für das Lesen aus gespeicherten (zwischengespeicherten) Dateien. Warum ist das ? Jede Datei hat also ein Ablaufdatum
Wenn eine Datei nicht abgelaufen ist, verwendet der Browser aus dem Cache (200 Cache).
Wenn die Datei abgelaufen ist, fordert der Browser den Server nach einer Datei an. Serverprüfdatei an beiden Stellen (Browser und Server). Wenn dieselbe Datei gefunden wird, lehnt der Server die Anforderung ab. Gemäß Protokoll verwendet der Browser die vorhandene Datei.
Schauen Sie sich diese Nginx-Konfiguration an
location / {
add_header Cache-Control must-revalidate;
expires 60;
etag on;
...
}
Hier ist der Ablauf auf 60 Sekunden eingestellt, sodass alle statischen Dateien für 60 Sekunden zwischengespeichert werden. Wenn Sie also innerhalb von 60 Sekunden erneut eine Datei anfordern, liest der Browser aus dem Speicher (200 Speicher). Wenn Sie nach 60 Sekunden eine Anfrage stellen, fordert der Browser den Server an (304).
Ich nahm an, dass die Datei nach 60 Sekunden nicht geändert wird. In diesem Fall erhalten Sie 200 (dh die aktualisierte Datei wird vom Server abgerufen).
Wenn die Server mit unterschiedlichen ablaufenden und zwischengespeicherten Headern (Richtlinien) konfiguriert sind, kann sich der Status unterscheiden.
In Ihrem Fall, in dem Sie cdn verwenden, ist der Hauptzweck von cdn die hohe Verfügbarkeit und die schnelle Lieferung. Daher verwenden sie mehrere Server. Obwohl sich Dateien anscheinend im selben Verzeichnis befinden, verwendet cdn möglicherweise mehrere Server, um u-Inhalte bereitzustellen, wenn diese Server unterschiedliche Konfigurationen haben. Dann kann sich dieser Status ändern. Ich hoffe es hilft.