Paramètres
Ce chapitre va énumérer quelques-uns des paramètres importants du protocole HTTP et leur syntaxe, ainsi que la manière dont ils sont utilisés dans la communication. Par exemple, le format de la date, le format de l'URL, etc. Cela vous aidera à construire vos messages de demande et de réponse lors de l'écriture de programmes client ou serveur HTTP. Vous verrez l'utilisation complète de ces paramètres dans les chapitres suivants, lorsque vous apprendrez la structure des messages pour les demandes et les réponses HTTP.
Version HTTP
HTTP utilise un schéma de numérotation <major>
.<minor>
pour indiquer les versions du protocole. La version d'un message HTTP est indiquée par un champ HTTP-Version sur la première ligne. Voici la syntaxe générale de la spécification du numéro de version HTTP :
HTTP-Version = "HTTP" "/" 1*DIGIT "." 1*DIGIT
Exemple
HTTP/1.0
ou
HTTP/1.1
Identificateurs de ressources uniformes
Les identificateurs de ressources uniformes (URI) sont des chaînes insensibles à la casse, simplement formatées, contenant le nom, l'emplacement, etc. pour identifier une ressource, par exemple, un site web, un service web, etc. La syntaxe générale des URI utilisée pour HTTP est la suivante :
URI = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]]
Ici, si le port est vide ou n'est pas donné, le port 80 est supposé pour HTTP et un abs_path vide est équivalent à un abs_path de "/". Les caractères autres que ceux des jeux réservés et non sécurisés sont équivalents à leur encodage ""%" HEX HEX".
Exemple
Les trois URI suivants sont équivalents :
http://abc.com:80/~smith/home.html
http://ABC.com/%7Esmith/home.html
http://ABC.com:/%7esmith/home.html
Formats de date et d'heure
Tous les timbres date/heure HTTP DOIVENT être représentés en temps moyen de Greenwich (GMT), sans exception. Les applications HTTP sont autorisées à utiliser l'une des trois représentations suivantes de l'horodatage :
Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123
Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036
Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format
Jeux de caractères
On utilise les jeux de caractères pour spécifier les jeux de caractères que le client préfère. Plusieurs jeux de caractères peuvent être énumérés en étant séparés par des virgules. Si une valeur n'est pas spécifiée, la valeur par défaut est le US-ASCII.
Exemple
Voici les jeux de caractères valides :
US-ASCII
ou
ISO-8859-1
ou
ISO-8859-7
Codage du contenu
Une valeur de codage de contenu indique qu'un algorithme de codage a été utilisé pour coder le contenu avant de le faire passer sur le réseau. Le codage du contenu est principalement utilisé pour permettre à un document d'être compressé ou transformé de manière utile sans perdre son identité.
Toutes les valeurs de codage du contenu sont insensibles à la casse. HTTP/1.1 utilise les valeurs de codage du contenu dans les champs d'en-tête Accept-Encoding et Content-Encoding que nous verrons dans les chapitres suivants.
Exemple
Voici les schémas d'encodage valides :
Accept-encoding: gzip
ou
Accept-encoding: compress
ou
Accept-encoding: deflate
Types de médias
HTTP utilise les types de médias Internet dans les champs d'en-tête Content-Type et Accept afin de fournir un typage des données et une négociation des types ouverts et extensibles. Toutes les valeurs de type de média sont enregistrées auprès de l'IANA (Internet Assigned Number Authority). La syntaxe générale pour spécifier le type de média est la suivante :
media-type = type "/" subtype *( ";" parameter )
Les noms des attributs de type, de sous-type et de paramètre sont sensibles à la casse.
Exemple
Accept: image/gif
Étiquettes de langue
HTTP utilise des balises de langue dans les champs Accept-Language et Content-Language. Une balise de langue est composée d'une ou plusieurs parties : une balise de langue principale et une série de balises secondaires éventuellement vides :
language-tag = primary-tag *( "-" subtag )
Les espaces blancs ne sont pas autorisés dans la balise et toutes les balises sont insensibles à la casse.
Exemple
Exemples d'étiquettes :
en, en-US, en-cockney, i-cherokee, x-pig-latin
où toute étiquette primaire de deux lettres est une abréviation de langue ISO-639 et toute étiquette secondaire initiale de deux lettres est un code de pays ISO-3166.
Besoin d'aide ?
Rejoignez notre communauté officielle et ne restez plus seul à bloquer sur un problème !