web-dev-qa-db-fra.com

Lorsque vous utilisez des ressources de cache, Firefox affiche une réponse "304" mais Chrome indique "220 (à partir de cache)".

Tout en travaillant sur certaines optimisations pour mon site, j'ai remarqué que certaines choses dans la mise en réseau des synchronisations pour Chrome Outils de développement différaient de celles des outils de développement Firefox.

De manière très cohérente, Chrome charge un certain nombre d'éléments sur la page, ce qui donne une réponse "200 (à partir du cache)". Les mêmes éléments sur Firefox ne montrent que 304 éléments de réponse.

Je me demande si quelqu'un peut expliquer cela. Vous trouverez ci-dessous deux captures d'écran pour la même ressource. Le premier de Chrome, le second de Firefox.

Example from Chrome

example from Firefox

1
Jeffrey Simon

C'est ainsi qu'un actif (tel qu'une image) est délivré à partir du serveur à une vitesse excellente.

  1. Lorsqu'une nouvelle connexion est établie, le serveur renvoie l'image avec le code d'état 200 (OK). Il renvoie également un en-tête de contrôle du cache avec une valeur maximale raisonnable d'un nombre en secondes égal à au moins 6 mois, ou un en-tête d'expiration avec une date future d'au moins 6 mois, ou les deux. De plus, un en-tête de dernière modification ou de balise électronique est renvoyé.

  2. Lorsque vous redemandez la ressource sans aucune actualisation manuelle, l'actif se charge très rapidement car le cache n'a pas expiré.

  3. Environ 6 mois plus tard (une fois le cache expiré), une demande d'image est présentée au serveur, ainsi qu'un en-tête if-modified-since ou if-no-match (selon que la dernière modification ou l'e-tag a été envoyé au serveur). navigateur après la première demande), et le serveur compare les données des en-têtes pour voir si elles correspondent et si elles le font, le serveur renvoie un code d’état 304 sans contenu, indiquant au navigateur qu’il peut continuer à charger son contenu. contenu mis en cache comme s'il s'agissait de l'actif valide et le plus à jour.

Je pense qu'avec Google Chrome, ils aiment déclarer les réponses en cache sous forme de 304 codes d'état. J'ai également lu quelque part en ligne que chrome ne respecte pas le paramètre cache-control max-age dans certains cas.

Voir: https://superuser.com/questions/313131/how-do-i-stop-chrome-sending-cache-control-max-age-0-when-i-hit-enter

1
Mike