PSR 07 - HTTP Message Interface

1 h Niveau 7

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

logo discord

Besoin d'aide ?

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

En savoir plus