Aller au contenu principal

5. Evaluation (Évaluation)

Sauf exclusion ci-dessous, un cache destinataire ou un serveur d'origine DOIT évaluer les préconditions de requête reçues après avoir effectué avec succès ses vérifications de requête normales et juste avant de traiter le contenu de la requête (le cas échéant) ou d'effectuer l'action associée à la méthode de requête. Un serveur DOIT ignorer toutes les préconditions reçues si sa réponse à la même requête sans ces conditions aurait été un code d'état autre que 2xx (Successful) ou 412 (Precondition Failed). En d'autres termes, les redirections et les échecs ont la priorité sur l'évaluation des préconditions dans les requêtes conditionnelles.

Un serveur qui n'est pas le serveur d'origine de la ressource cible et ne peut pas agir comme un cache pour les requêtes sur la ressource cible NE DOIT PAS évaluer les champs d'en-tête de requête conditionnelle définis par cette spécification, et il DOIT les transmettre si la requête est transmise, car le client générateur a l'intention qu'ils soient évalués par un serveur qui peut fournir une représentation actuelle. De même, un serveur DOIT ignorer les champs d'en-tête de requête conditionnelle définis par cette spécification lorsqu'ils sont reçus avec une méthode de requête qui n'implique pas la sélection ou la modification d'une représentation sélectionnée, telle que CONNECT, OPTIONS ou TRACE.

Notez que les extensions de protocole peuvent modifier les conditions dans lesquelles les préconditions sont évaluées ou les conséquences de leur évaluation. Par exemple, la directive de contrôle de cache "immutable" (définie par [RFC8246]) modifie les vérifications de pré-évaluation de sorte qu'une réponse 304 (Not Modified) puisse être renvoyée sans revalidation.

Bien que les champs d'en-tête de requête conditionnelle soient définis comme étant utilisables avec la méthode HEAD (pour maintenir la cohérence de la sémantique de HEAD avec celle de GET), il n'y a aucun intérêt à envoyer un HEAD conditionnel car une réponse réussie a à peu près la même taille qu'une réponse 304 (Not Modified) et est plus utile qu'une réponse 412 (Precondition Failed).