Tutoriel détail...login
Tutoriel détaillé HTTP
auteur:php.cn  temps de mise à jour:2022-04-11 13:41:55

Structure des messages HTTP


HTTP est basé sur le modèle d'architecture client/serveur (C/S). Il échange des informations via une liaison fiable et est un protocole de requête/réponse sans état.

Un « client » HTTP est une application (un navigateur web ou tout autre client) qui se connecte à un serveur dans le but d'envoyer une ou plusieurs requêtes HTTP au serveur.


Un « serveur » HTTP est également une application (généralement un service Web, tel qu'un serveur Web Apache ou un serveur IIS, etc.), qui reçoit les requêtes des clients et envoie du HTTP au données de réponse du client.


HTTP utilise des identifiants de ressources uniformes (URI) pour transmettre des données et établir des connexions.

Une fois la connexion établie, les messages de données sont envoyés en utilisant un format similaire à celui utilisé par la messagerie Internet [RFC5322] et les extensions de messagerie Internet polyvalentes (MIME) [RFC2045].


Message de demande du client

Le message de demande que le client envoie une requête HTTP au serveur comprend le format suivant : ligne de requête, en-tête de requête Il se compose de quatre parties (en-tête), ligne vierge et données de requête. La figure suivante montre le format général du message de requête.

2012072810301161


Message de réponse du serveur

La réponse HTTP comprend également quatre parties, à savoir : la ligne d'état, l'en-tête du message, la ligne vide et la réponse. corps.

httpmessage



Exemple

L'exemple suivant est un exemple typique d'utilisation de GET pour transférer des données :

Demande du client :

GET /hello.txt HTTP/1.1
User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3
Host: www.example.com
Accept-Language: en, mi

Réponse du serveur :

HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
ETag: "34aa387-d-1568eb00"
Accept-Ranges: bytes
Content-Length: 51
Vary: Accept-Encoding
Content-Type: text/plain

Résultat de sortie :

Hello World! My payload includes a trailing CRLF.

Site Web PHP chinois