Range: |
Intervalle |
HTTP |
Entêtes |
Syntaxe
Range: unit=range-start-
|
Range: unit=range-start-range-end
|
Range: unit=range-start-range-end, range-start-range-end
|
Range: unit=range-start-range-end, range-start-range-end, range-start-range-end
|
Range: unit=-suffix-length
|
Paramètres
Nom |
Description |
unit |
Ce paramètre permet d'indiquer l'unité dans laquelle les intervalles sont spécifiées. Il s'agit généralement d'octets. |
range-start |
Ce paramètre permet d'indiquer un entier dans l'unité spécifiée correspondant au début de l'intervalle des requêtes. |
range-end |
Ce paramètre permet d'indiquer un entier dans l'unité spécifiée correspondant à la fin de l'intervalle demandée. Cette valeur est facultative et, si elle est omise, la fin du document est considérée comme la fin de l'intervalle. |
suffix-length |
Ce paramètre permet d'indiquer un entier dans l'unité spécifiée correspondant au nombre d'unités à la fin du fichier à renvoyer. |
Description
Ce champ d'entête permet d'indiquer la partie d'un document que le serveur doit renvoyer.
Remarques
- Le champ d'entête Range: sur une requête GET modifie la sémantique de la méthode pour demander le transfert d'une seule ou plusieurs sous-plages des spécifiées
de représentation sélectionnées, plutôt que la totalité des données de représentation sélectionnées.
- Un serveur peut ignorer le champ d'entête Range:. Cependant, les serveurs d'origine et les caches intermédiaires devraient prendre en charge les intervalles d'octets lorsque
cette situation est possible, car Range: prend en charge la récupération efficace des transferts partiellement échoués et la récupération partielle des grandes représentations.
Un serveur doit ignorer un champ d'entête Range: reçu avec une méthode de requête autre que GET.
- Un serveur d'origine doit ignorer un champ d'entête Range: contenant une unité de gamme qu'il ne comprend pas. Un proxy peut éliminer un champ d'entête Range:
contenant une unité d'intervalle qu'il ne comprend pas.
- Un serveur prenant en charge les requêtes d'intervalle peut ignorer ou rejeter un champ d'entête de l'intervalle se composant de plus de deux intervalles se chevauchant, ou un ensemble de
nombreuses petites intervalles n'étant pas répertoriées dans l'ordre croissant, car les deux sont des indications d'un client cassé ou d'un attaque délibéré de déni de service. Un client
ne devrait pas demander plusieurs intervalles étant intrinsèquement moins efficaces à traiter et à transférer qu'une intervalle unique englobant les mêmes données.
- Un client demandant plusieurs intervalles devrait répertorier ces intervalles dans l'ordre croissant (l'ordre dans lequel elles seraient généralement reçues dans une représentation
complète), sauf s'il existe un besoin spécifique de demander une partie ultérieure plus tôt. Par exemple, un agent utilisateur traitant une grande représentation avec un catalogue interne
de morceaux peut avoir besoin de demander d'abord des morceaux ultérieures, en particulier si la représentation se compose de pages entreposées dans l'ordre inverse et que l'agent utilisateur
souhaite transférer une page à la fois.
- Le champ d'entête Range: est évalué après avoir évalué les champs d'entête de reconditionnement définis dans la norme RFC 7232, et uniquement si le résultat en l'absence du champ
d'entête Range: est une réponse 200 OK. En d'autres termes, Range: est ignoré lorsqu'un GET conditionnel entraînerait une réponse 304 Not Modified.
- Le champ d'entête If-Range peut être utilisé comme condition préalable à l'application du champ d'entête Range:.
- Si toutes les conditions préalables sont remplies, le serveur prend en charge le champ d'entête Range: pour la ressource cible et les intervalles spécifiées sont valides et satisfaisables,
le serveur devrait envoyer une réponse 206 Partial Content avec une charge utile contenant une ou plusieurs représentations partielles correspondant aux intervalles satisfaisantes demandées.
- Si toutes les conditions préalables sont remplies, le serveur prend en charge le champ d'entête Range: pour la ressource cible, et la ou les intervalles spécifiées sont invalides ou non
satisfaisantes, le serveur devrait envoyer une réponse 416 Range Not Satisfiable.
Dernière mise à jour : Vendredi, le 10 janvier 2020