HyperText Transfer Protocol

Norme utilisée par Up ! Content Service

La norme HyperText Transfer Protocol (HTTP) décrit comment envoyer un requête sur une ressource d'un client vers un serveur et comment répondre à celle-ci d'un serveur vers un client. Elle permet également de router une requête ou une réponse via des passerelles abusiment appelées proxy.

La communication est à l'initiative du client : il pose une requête sur une ressource et le serveur répond. Le port d'écoute du serveur est usuellement 80.

Une ressource est composée d'une ou plusieurs entités chacune identifiée par une étiquette.

Une requête ou une réponse sont constituées de :

Une ligne de l'en-tête d'une requête ou d'une réponse se compose d'une ou plusieurs lignes physiques d'au plus 70 caractères.

La première ligne physique commence par une commande suivie du caractère deux-points : . Les autres lignes commencent par un séparateur qui est soit un espace ou une tabulation \t.

Les lignes de la requête ou de la réponse sont terminées par les caractères saut de ligne \r et retour chariot \n.

Voici le format des données :

Commandes communes aux requêtes et aux réponses

Les commandes sont les suivantes :

Commandes spécifiques aux requêtes

Les commandes sont les suivantes :

Commandes spécifiques aux réponses

Les commandes sont les suivantes :

Commandes spécifiques aux entités

Les commandes sont les suivantes :

Messages de HyperText Transfer Protocol

Messages de démarrage de la réponse

Voici les messages déclarés dans la norme :

100 Continue. 101 Switching Protocols. 200 OK. 201 Created. 202 Accepted. 203 Non-Authoritative Information. 204 No Content. 205 Reset Content. 206 Partial Content. 300 Multiple Choices. 301 Moved Permanently. 302 Moved Temporarily. 303 See Other. 304 Not Modified. 305 Use Proxy. 400 Bad Request. 401 Unauthorized. 402 Payment Required. 403 Forbidden. 404 Not Found. 405 Method Not Allowed. 406 Not Acceptable. 407 Proxy Authentication Required. 408 Request Time-out. 409 Conflict. 410 Gone. 411 Length Required. 412 Precondition Failed. 413 Request Entity Too Large. 414 Request-URI Too Large. 415 Unsupported Media Type. 500 Internal Server Error. 501 Not Implemented. 502 Bad Gateway. 503 Service Unavailable. 504 Gateway Time-out. 505 HTTP Version not supported.

Messages de la commande Warning

Voici les messages déclarés dans la norme :

10 Response is stale. 11 Revalidation failed. 12 Disconnected operation. 13 Heuristic expiration. 14 Transformation applied. 99 Miscellaneous warning.

Syntaxe d'une conversation au format HyperText Transfer Protocol

Conversation : Requete : Methode : NomDeLaMethode : URI : ListeDeCommandesRequete : CommandeRequete : Reponse : CodeRetour : CommandeReponse : CommandeGenerale : CommandeEntite : ListeDeTypesContenu : TypeContenu : ListeDeProprietesOptionnelles : ListeDeProprietes : Propriete : ListeDEncodages : Encodage : ListeDUnites : Unite : Identification : NumeroPortOption : ListeDeModeles : ComparaisonFaibleOption : SuiteIfRange : ListeDIntervalles : Intervalle : BorneSuperieureOption : SuiteRetryAfter : ListeDeProduits : Produit : ListeDePasserelles : Passerelle : NomDuProduitOption : ListeDAvertissements : Avertissement : ListeDeChainesDIdentification : Transformation : ListeDeDirectives : Directive : DirectiveClient : DirectiveServeur : ListeDeChampsOption : ListeDeChamps : DureeEnSecondesOption : ListeDeMethodes : CorpsOptionnel : ListeDeTroncons : Troncon :

Exemple d'une conversation au format HyperText Transfer Protocol

Cette conversation ne concerne que le flux de contrôle. Voici la question :

http://www.up-comp.com/french/index.html GET 1.1\r\n Cache-control: no-cache\r\n Date: Sun, 1 Jan 2006 18:52:32 GMT\r\n Accept: text/plain; q=0.5, text/html\r\n Accept-Charset: iso-8859-5, unicode-1-1;q=0.8\r\n Accept-Encoding: deflate, gzip\r\n Accept-Language: fr;q=1, en;q=0.7\r\n From: nom.prenom@up-comp.com\r\n Host: www.up-comp.com:80\r\n Referer: http://www.up-comp.com/index.html\r\n Transfer-Encoding: base64\r\n User-Agent: Up ! Application System/4.0.0 \r\n \r\n Voici la réponse :

http://www.up-comp.com/french/index.html GET 1.1\r\n Cache-control: no-cache\r\n Date: Sun, 1 Jan 2006 18:52:33 GMT\r\n Content-Encoding: gzip\r\n Content-Language: fr\r\n Content-Length: 1024\r\n Content-Type: text/html\r\n Expires: Sun, 1 Jan 2006 18:52:32 GMT\r\n Last-Modified: Sun, 1 Jan 2006 18:52:32 GMT\r\n Transfer-Encoding: base64\r\n Server: Up ! Application System/4.0.0 \r\n \r\n