PSR 07 - HTTP Message Interface
Les messages HTTP sont à la base du développement Web. Les navigateurs Web et les clients HTTP tels que cURL créent des messages de requête HTTP qui sont envoyés à un serveur Web, qui fournit un message de réponse HTTP. Le code côté serveur reçoit un message de requête HTTP et renvoie un message de réponse HTTP.
Les messages HTTP sont généralement extraits du consommateur final, mais en tant que développeurs, nous avons généralement besoin de savoir comment ils sont structurés et comment y accéder ou les manipuler afin d'effectuer nos tâches, qu'il s'agisse de faire une demande à une API HTTP. , ou le traitement d'une demande entrante.
Chaque message de requête HTTP a une forme spécifique :
POST /path HTTP/1.1
Host: example.com
foo=bar&baz=bat
La première ligne d'une requête est la « ligne de requête » et contient, dans l'ordre, la méthode de requête HTTP, la cible de la requête (généralement un URI absolu ou un chemin sur le serveur Web) et la version du protocole HTTP. Ceci est suivi d'un ou plusieurs en-têtes HTTP, d'une ligne vide et du corps du message.
Les messages de réponse HTTP ont une structure similaire :
HTTP/1.1 200 OK
Content-Type: text/plain
La première ligne est la “ligne d'état” et contient, dans l'ordre, la version du protocole HTTP, le code d'état HTTP et une "phrase de raison", une description lisible par l'homme du code d'état. Comme le message de requête, il est ensuite suivi d'un ou plusieurs en-têtes HTTP, d'une ligne vide et du corps du message.
Les interfaces décrites dans ce document sont des abstractions autour des messages HTTP et des éléments qui les composent.
Les messages
Un message HTTP est soit une requête d'un client à un serveur, soit une réponse d'un serveur à un client. Cette spécification définit les interfaces pour les messages HTTP Psr\Http\Message\RequestInterface
et Psr\Http\Message\ResponseInterface
respectivement.
Les deux Psr\Http\Message\RequestInterface
et Psr\Http\Message\ResponseInterface
étendent Psr\Http\Message\MessageInterface
. Bien que Psr\Http\Message\MessageInterface
peuvent être implémentés directement, les implémenteurs doivent être implémenter Psr\Http\Message\RequestInterface
et Psr\Http\Message\ResponseInterface
.
À partir de maintenant, l'espace de noms Psr\Http\Message
sera omis lors de la référence à ces interfaces.
Les en-têtes
Besoin d'aide ?
Rejoignez notre communauté officielle et ne restez plus seul à bloquer sur un problème !