Pour votre dernière question, pourquoi? Je vais essayer d'expliquer avec ce que je sais
Une brève explication de ces trois codes de statut en termes simples.
- 200 - succès (demandes du navigateur et obtention du fichier du serveur)
Si la mise en cache est activée sur le serveur
- 200 (du cache mémoire) - fichier trouvé dans le navigateur, donc le navigateur ne va pas demander au serveur
- 304 - le navigateur demande un fichier mais il est rejeté par le serveur
Pour certains fichiers, le navigateur décide de demander au serveur et pour certains, il décide de lire à partir des fichiers stockés (mis en cache). Pourquoi est-ce ? Chaque fichier a une date d'expiration, donc
Si un fichier n'est pas expiré, le navigateur utilisera le cache (200 cache).
Si le fichier a expiré, le navigateur demande au serveur un fichier. Fichier de vérification du serveur aux deux endroits (navigateur et serveur). Si le même fichier est trouvé, le serveur refuse la demande. Selon le protocole, le navigateur utilise le fichier existant.
regardez cette configuration nginx
location / {
add_header Cache-Control must-revalidate;
expires 60;
etag on;
...
}
Ici, l'expiration est définie sur 60 secondes, donc tous les fichiers statiques sont mis en cache pendant 60 secondes. Donc, si vous demandez à nouveau un fichier dans les 60 secondes, le navigateur lira de la mémoire (200 mémoires). Si vous demandez après 60 secondes, le navigateur demandera le serveur (304).
J'ai supposé que le fichier n'est pas modifié après 60 secondes, dans ce cas, vous en obtiendriez 200 (c'est-à-dire que le fichier mis à jour sera récupéré sur le serveur).
Par conséquent, si les serveurs sont configurés avec des en-têtes (stratégies) d'expiration et de mise en cache différents, l'état peut différer.
Dans votre cas, vous utilisez cdn, l'objectif principal de cdn est la haute disponibilité et la livraison rapide. Ils utilisent donc plusieurs serveurs. Même s'il semble que les fichiers se trouvent dans le même répertoire, cdn peut utiliser plusieurs serveurs pour fournir du contenu u, si ces serveurs ont des configurations différentes. Ces statuts peuvent alors changer. J'espère que ça aide.