304

Not Modified

Officiellement,
La ressource n'a pas besoin d'être retranscrite, car aucune modification n'a eu lieu.

Spécification du code d'état HTTP 304

304 Not Modified indique qu'une requête GET ou HEAD conditionnelle a été reçue et aurait donné lieu à une réponse 200 (OK) si la condition n'avait pas été évaluée à faux. En d'autres termes, le serveur n'a pas besoin de transférer une représentation de la ressource cible parce que la demande indique que le client, qui a formulé la demande conditionnelle, dispose déjà d'une représentation valide ; le serveur redirige donc le client pour qu'il utilise cette représentation stockée comme s'il s'agissait du contenu d'une réponse 200 (OK).

Le serveur qui génère une réponse 304 Not Modified DOIT générer l'un des champs d'en-tête suivants qui auraient été envoyés dans une réponse 200 (OK) à la même demande :

  1. Content-Location, Date, ETag, et Vary
  2. Cache-Control et Expires (voir [CACHING])

Comme le but d'une réponse 304 Not Modified est de minimiser le transfert d'informations lorsque le destinataire a déjà une ou plusieurs représentations en cache, un expéditeur NE DOIT PAS générer de métadonnées de représentation autres que les champs énumérés ci-dessus, à moins que ces métadonnées n'existent dans le but de guider les mises à jour de la mémoire cache (par ex.g., Last-Modified peut être utile si la réponse ne comporte pas de champ ETag).

Les exigences imposées à un cache qui reçoit une réponse 304 Not Modified sont définies à la section 4.3.4 de [CACHING]. Si la demande conditionnelle provient d'un client sortant, tel qu'un agent utilisateur avec son propre cache envoyant un GET conditionnel à un proxy partagé, alors le proxy DEVRAIT transmettre la réponse 304 Not Modified à ce client.

Une réponse 304 Not Modified se termine par la fin de la section d'en-tête ; elle ne peut pas contenir de contenu ou de bandes-annonces.

La réponse 304 Not Modified est terminée par la fin de la section d'en-tête ; elle ne peut pas contenir de contenu ou de bandes-annonces.

Source / Citation de : Le code d'état HTTP 304 Not Modified est spécifié par la section 15.4.5 de RFC9110.

Protocole HTTP

travaux en cours

Comment lancer un code d'état 304 avec PHP ?

Pour lancer le code d'état HTTP 304 sur une page web, on peut utiliser la fonction PHP http_response_code. La syntaxe est la suivante : http_response_code(304) (PHP 5 >= 5.4.0, PHP 7, PHP 8)

Teste le code d'état HTTP 304

Pour pouvoir afficher le code de statut HTTP (dans ce cas 304 Not Modified) et d'autres informations côté client, il faut ouvrir la console de développement avec F12. Ensuite, il faut naviguer vers l'onglet "Réseau". La page peut maintenant être ouverte, la page web (exemple index.php) doit être visible dans l'onglet réseau. Il faut la sélectionner et choisir ensuite le domaine Herder. L'utilisateur voit alors le résultat suivant :

Code d'état 304 Not Modified
Aperçu
URL: https://http-statuscode.com/errorCodeExample.php?code=304
Statut: 304 Not Modified
Ceux-ci: Network
Adresse IP: XX.XX.XX.XX
Code d'état 304 Not Modified

Compatibilité du navigateur avec le code d'état 304

Chrome Yes
Edge Yes
Firefox Yes
Opera Yes
Safari Yes
Chrome Android Yes
Firefox for Android Yes
Opera Android Yes
Safari on iOS Yes
Internet Yes
WebView Android Yes

Les constantes dans les langages de programmation

http.StatusNotModified
Response::HTTP_NOT_MODIFIED
:not_modified

Article de blog

Mise en cache et codes d'état HTTP : Optimisation des performances web grâce à une mise en cache intelligente

Les performances web et l'expérience utilisateur qui en résulte sont des aspects essentiels pour le succès de tout site web. Les codes d'état HTTP sont un facteur déterminant qui influe sur ces per...

Auteur: Tony Brüser
Auteur: Tony Brüser

Tony Brüser est un développeur web enthousiaste avec une prédilection pour les codes de statut HTTP.

LinkedInGitHub