If-None-Match: |
Si correspond pas |
HTTP |
Entêtes |
Syntaxe
If-None-Match: etag_value
|
If-None-Match: etag_value, etag_value,...
|
If-None-Match: *
|
Paramètres
Nom |
Description |
etag_value |
Ce paramètre permet d'indiquer la balise d'entité représentant de manière unique les ressources demandées. Il s'agit d'une chaîne de caractères ASCII placés entre guillemets doubles. |
* |
Ce paramètre permet d'indiquer n'importe quelle ressource. |
Description
Ce champ d'entête permet d'indiquer la condition de la requête. Pour les méthodes GET et HEAD, le serveur Web renverra la ressource spécifiée, avec un code d'état 200, seulement si elle n'a pas un champ d'entête ETag correspondant à ceux ayant été fournit. Pour les autres méthodes, la requête ne sera en traitement que si le champ d'entête ETag de l'éventuelle ressource existante ne correspond à aucune des valeurs répertoriées.
Remarques
- Le champ d'entête If-None-Match: conditionne la méthode de requête à un cache de destinataire ou à un serveur d'origine n'ayant aucune représentation actuelle de la ressource
cible, lorsque la valeur de champ est «*», ou en ayant une représentation sélectionnée avec un balise d'entité ne correspondant à aucune de celles répertoriées dans la valeur de champ.
- Un destinataire doit utiliser la fonction de comparaison faible lors de la comparaison d'étiquettes d'entité pour If-None-Match:, car des étiquettes d'entité faibles peuvent être
utilisées pour la validation du cache même s'il y a eu des changements dans les données de représentation.
- Ce champ d'entête If-None-Match: est principalement utilisé dans les requêtes GET conditionnelles pour permettre des mises à jour efficaces des informations mises en
cache avec un minimum de charge de transaction. Lorsqu'un client souhaite mettre à jour une ou plusieurs réponses entreposées ayant des balises d'entité, le client devrait générer un
champ d'entête If-None-Match: contenant une liste de ces balises d'entité lors d'une requête GET; cette situation permet aux serveurs destinataires
d'envoyer une réponse 304 Not Modified pour indiquer quand l'une de ces réponses entreposées correspond à la représentation sélectionnée.
- Le champ d'entête If-None-Match: peut également être utilisé avec une valeur de «*» pour empêcher une méthode de requête non sûre (par exemple, PUT) de modifier par inadvertance
une représentation existante de la ressource cible lorsque le client estime que la ressource n'a pas de représentation actuelle. Il s'agit d'une variante du problème de mise à jour perdue pouvant
survenir si plusieurs clients tentent de créer une représentation initiale pour la ressource cible.
- Un serveur d'origine recevant un champ d'entête If-None-Match: doit évaluer la condition avant d'exécuter la méthode. Si la valeur de champ est «*», la condition est fausse si
le serveur d'origine a une représentation actuelle pour la ressource cible. Si la valeur de champ est une liste de balises d'entité, la condition est fausse si l'une des balises
répertoriées correspond à la balise d'entité de la représentation sélectionnée.
- Un serveur d'origine ne doit pas exécuter la méthode demandée si la condition est fausse; au lieu de cela, le serveur d'origine doit répondre avec le code d'état 304 Not Modified si
la méthode de requête est GET ou HEAD ou sinon le code d'état 412 Precondition Failed pour toutes les autres méthodes de requête.
Dernière mise à jour : Vendredi, le 10 janvier 2020