Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Code 304 - Not Modified

7 réponses
Avatar
annie
Bonjour,

En regardant les statistiques d'accès à mon site web, je vois un certain
nombre d'accès en :

Code 304 - Not Modified

A quoi ça correspond ?

7 réponses

Avatar
F. Senault

Code 304 - Not Modified

A quoi ça correspond ?


Des pages en cache du browser du client, si je ne me trompe.

(Un client passe, lit la page, puis revient, et redemande une page qui
n'a pas changé depuis sa dernière visite.)

Fred
--
You better make your face up In your favorite disguise
With your button-down lips And your roller blind eyes
With your empty smile And your hungry heart
(Pink Floyd, Run Like Hell)

Avatar
leloo10
F. Senault a écrit
Code 304 - Not Modified

A quoi ça correspond ?


Des pages en cache du browser du client, si je ne me trompe.


en cache du serveur, pour être plus juste :)

Leeloo (qui passait par là)


Avatar
Patrick Mevzek
Code 304 - Not Modified

A quoi ça correspond ?


Des pages en cache du browser du client, si je ne me trompe.


en cache du serveur, pour être plus juste :)


Non, en cache côté *client* !

Ce dernier envoit une requête GET conditionnelle (avec en-têtes
If-Modified-*, car il a déjà une copie du document, récupéré plus tôt)
et si la condition n'est pas remplie, le serveur renvoit
uniquement un code 304 sans document (et dans le cas contraire, renvoit
200 et le document)

--
Patrick Mevzek . . . . . . Dot and Co (Paris, France)
<http://www.dotandco.net/> <http://www.dotandco.com/>
Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>



Avatar
leloo10
Patrick Mevzek a écrit
Non, en cache côté *client* !


Oupps... et on est déjà mardi, j'ai donc pas d'excuses :)

Leeloo (qui se cache sous son fauteuil)

Avatar
Florent Clairambault
Tu devrais peut - être rechercher sur Google un peu comment ça fonctionne...

Ton navigateur dit :
==> Est - ce que la page /repertoire/page.html a été modifié depuis 2 jours
(HEAD /repertoire/page.html)

et le serveur lui répond :
<== NON (304)

Florent

"annie" a écrit dans le message de news:
421b10a5$0$28537$
Bonjour,

En regardant les statistiques d'accès à mon site web, je vois un certain
nombre d'accès en :

Code 304 - Not Modified

A quoi ça correspond ?


Avatar
Florent Clairambault
Ah oups, ok, je croyais que c'était dans le cas des requets HEAD, désolé...


Florent
"Patrick Mevzek" a écrit dans le message de
news:
Code 304 - Not Modified

A quoi ça correspond ?


Des pages en cache du browser du client, si je ne me trompe.


en cache du serveur, pour être plus juste :)


Non, en cache côté *client* !

Ce dernier envoit une requête GET conditionnelle (avec en-têtes
If-Modified-*, car il a déjà une copie du document, récupéré plus tôt)
et si la condition n'est pas remplie, le serveur renvoit
uniquement un code 304 sans document (et dans le cas contraire, renvoit
200 et le document)

--
Patrick Mevzek . . . . . . Dot and Co (Paris, France)
<http://www.dotandco.net/> <http://www.dotandco.com/>
Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>





Avatar
Patrick Mevzek
Ton navigateur dit :
==> Est - ce que la page /repertoire/page.html a été modifié depuis 2
jours (HEAD /repertoire/page.html)


(BTW, il manque le HTTP/1.0 ou HTTP/1.1)

Non. C'est un GET conditionnel, ie GET plus un des en-têtes suivants:
If-Modified-Since/If-Unmodified-Since (plus une date)
If-Match/If-None-Match (plus une chaîne de caractères, l'Etag)
If-Range (plus la spécification d'un bloc d'octets)

Tous les détails: §9.3 et §14.25 (notamment) du RFC2616

et le serveur lui répond :
<== NON (304)


Pour préciser, dans ce cas de figure le serveur répond:
- 304 + en-têtes sans document si la condition n'est pas réalisée
- 200 (ou équivalents) + en-têtes + document si la condition est réalisée.

C'est une fonctionnalité astucieuse qui minimise les échanges.
Sans cela, le client devrait faire,
1) soit
HEAD => vérification de la nouvelle date de dernière modification,
comparaison, et éventuellement GET si nécessaire

2) soit GET systématiquement.

Le 2) implique donc que le cache ne sert à rien.
Le 1) n'est pas optimal, car dans un cas on fait juste HEAD (ok, document
pas changé, on utilise le cache), dans l'autre on fait HEAD puis GET,
donc on récupère deux fois les en-têtes (les mêmes a priori), et on
risque de faire 2 connexions TCP.

Le GET conditionnel permet d'avoir HEAD+GET en ``simultané'' (ie le
serveur répond comme un GET ou comme un HEAD selon la réussite de la
condition imposée par le client).

--
Patrick Mevzek . . . . . . Dot and Co (Paris, France)
<http://www.dotandco.net/> <http://www.dotandco.com/>
Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>