Paramètres

10 min Niveau 2

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.

logo discord

Besoin d'aide ?

Rejoignez notre communauté officielle et ne restez plus seul à bloquer sur un problème !

En savoir plus