Bases des technologies web

Un navigateur demande de nouveau une image reçue précédemment, en plaçant dans l'en-tête If-None-Match la valeur ETag de la réponse d'alors. Si l'image n'a pas changé sur le serveur, quelle est la réponse correcte du serveur ?

  1. AIl renvoie 200 OK et transmet de nouveau tout le corps de l'image, même si le contenu est identique à l'envoi précédent
  2. BIl renvoie 304 Not Modified sans corps, et le navigateur utilise l'image qu'il a conservée
  3. CIl renvoie 404 Not Found pour que le navigateur supprime l'ancienne image conservée et la récupère de nouveau
Afficher la réponse et l'explication

Réponse : B. Il renvoie 304 Not Modified sans corps, et le navigateur utilise l'image qu'il a conservée

Un ETag est un identifiant qui représente une version précise d'une ressource. Le navigateur place l'ETag dans If-None-Match pour envoyer une requête conditionnelle signifiant « envoie-la si elle a changé depuis cette version » ; si elle n'a pas changé, le serveur renvoie 304 Not Modified sans corps. La vérification ne coûte qu'un seul aller-retour et les données de l'image n'ont pas à être renvoyées. Si elle a changé, le serveur renvoie 200 OK avec le nouveau corps et un nouvel ETag. Pendant la durée fixée par max-age dans Cache-Control, le navigateur utilise sa copie sans même faire cette vérification.

S'entraîner sur ce thème Retour au thème

Autres questions sur Bases des technologies web

  1. Quelle description de HTTP/2 et HTTP/3 est correcte ?
  2. On récupère, l'un après l'autre, un fichier HTML et les quatre images qu'il référence sur un serveur web dont le RTT est de 40 ms. On suppose que l'établissement d'une connexion TCP prend un aller-retour et que chaque requête et sa réponse prennent un aller-retour, et l'on néglige le temps de transfert des données, le temps de traitement du serveur, TLS et la fermeture des connexions. Quelle est la différence de durée totale entre l'ouverture d'une nouvelle connexion TCP pour chaque objet et la réutilisation d'une seule connexion TCP (connexion persistante) ?
  3. HTTP est un protocole sans état. Quelle description de ce que cela signifie et de la façon habituelle dont un site web garde un utilisateur connecté est correcte ?
  4. Quelle description du cookie défini par l'en-tête ci-dessus est correcte ?
  5. Quelle description d'une différence entre le localStorage du navigateur et les cookies est correcte ?