Messages
HTTP est basé sur le modèle d'architecture client-serveur et sur un protocole de demande/réponse sans état qui fonctionne par l'échange de messages sur une connexion TCP/IP fiable.
Un "client" HTTP est un programme (navigateur Web ou tout autre client) qui établit une connexion avec un serveur dans le but d'envoyer un ou plusieurs messages de demande HTTP. Un "serveur" HTTP est un programme (généralement un serveur web comme le serveur web Apache ou les services d'information Internet IIS, etc. ) qui accepte les connexions afin de répondre aux demandes HTTP en envoyant des messages de réponse HTTP.
Le protocole HTTP utilise l'identificateur de ressources uniformes (URI) pour identifier une ressource donnée et établir une connexion. Une fois la connexion établie, les messages HTTP sont transmis dans un format similaire à celui utilisé par le courrier Internet [RFC5322]
et les Multipurpose Internet Mail Extensions (MIME) [RFC2045]
. Ces messages comprennent des requêtes du client au serveur et des réponses du serveur au client qui auront le format suivant :
HTTP-message = <Request> | <Response> ; HTTP/1.1 messages
Les demandes HTTP et les réponses HTTP utilisent un format de message générique de la RFC 822 pour transférer les données requises. Ce format de message générique se compose des quatre éléments suivants.
- Une ligne de début
- zéro ou plusieurs champs d'en-tête suivis d'un CRLF
- Une ligne vide (c'est-à-dire une ligne où rien ne précède le CRLF) indiquant la fin des champs d'en-tête
- éventuellement, un corps de message
Dans les sections suivantes, nous allons expliquer chacune des entités utilisées dans un message HTTP.
Ligne de début de message
Une ligne de départ aura la syntaxe générique suivante :
start-line = Request-Line | Status-Line
Nous parlerons de Request-Line et de Status-Line en abordant les messages HTTP Request et HTTP Response respectivement. Pour l'instant, voyons les exemples de ligne de départ dans le cas d'une demande et d'une réponse :
GET /hello.htm HTTP/1.1 (This is Request-Line sent by the client)
HTTP/1.1 200 OK (This is Status-Line sent by the server)
Champs d'en-tête
Besoin d'aide ?
Rejoignez notre communauté officielle et ne restez plus seul à bloquer sur un problème !