Vous êtes sur la page 1sur 3

Recherche

Le protocole HTTP
Le protocole HTTP (Hypertext Transfer Protocol) est un protocole de communication utilisé pour
transférer des données sur le World Wide Web. Il repose sur une architecture client/serveur, où le
client envoie des requêtes au serveur, qui renvoie ensuite des réponses appropriées. Dans ce
document, nous allons explorer en détail l'architecture client/serveur, les types de requêtes et de
réponses, ainsi que les codes de retour du protocole HTTP. Nous aborderons également des
exemples de mise en œuvre de ces concepts en Python.

Architecture client/serveur :
L'architecture client/serveur est le modèle fondamental sur lequel le protocole HTTP est basé.
Dans ce modèle, le client initie une connexion avec le serveur en envoyant une requête. Le
serveur attend les requêtes des clients, les traite et renvoie des réponses correspondantes.
Cette architecture permet une communication bidirectionnelle entre le client et le serveur.

Types de requêtes et format des requêtes :


Le protocole HTTP définit plusieurs types de requêtes, les plus courantes étant les suivantes :

1. GET : Utilisée pour récupérer une ressource spécifiée par l'URL dans la requête. Elle est
principalement utilisée pour obtenir des données.

2. POST : Utilisée pour envoyer des données au serveur, généralement dans le but de les
soumettre pour traitement ou de les stocker.

3. PUT : Utilisée pour envoyer des données au serveur afin de les mettre à jour ou de créer une
nouvelle ressource.

4. DELETE : Utilisée pour demander la suppression d'une ressource spécifiée par l'URL dans la
requête.

Chaque requête HTTP est composée d'une ligne de requête, d'en-têtes et d'un corps facultatif
pour certaines requêtes, telles que POST. La ligne de requête contient la méthode de requête
(GET, POST, etc.) et l'URL de la ressource ciblée. Les en-têtes contiennent des informations
supplémentaires sur la requête, telles que les types de contenu acceptés par le client.

Voici un exemple de requête GET en Python :

import http.client
conn = http.client.HTTPSConnection("www.example.com")
conn.request("GET", "/")
res = conn.getresponse()

print(res.status, res.reason)
data = res.read()
print(data.decode("utf-8"))

Types de réponses et format des réponses :


Le serveur renvoie des réponses aux requêtes HTTP, généralement avec un code de statut pour
indiquer le résultat de la requête. Les réponses HTTP peuvent être catégorisées en plusieurs
types principaux :

1. Réponses informatives (1xx) : Elles fournissent des informations sur l'état de la requête en cours
et sont rarement utilisées dans la pratique.

2. Réponses de succès (2xx) : Elles indiquent que la requête a été traitée avec succès par le
serveur. Par exemple, le code 200 OK indique que tout s'est bien passé.

3. Réponses de redirection (3xx) : Elles indiquent que le client doit effectuer une action
supplémentaire pour compléter la requête. Par exemple, le code 301 Moved Permanently indique
que la ressource demandée a été déplacée de manière permanente vers une autre URL.

4. Réponses d'erreur client (4xx) : Elles indiquent que la requête du client était incorrecte ou
incapable d'être traitée par le serveur. Par exemple, le code 404 Not Found indique que la
ressource demandée n'a pas été trouvée.

5. Réponses d'erreur serveur (5xx) : Elles indiquent que le serveur a rencontré une erreur lors du
traitement de la requête. Par exemple, le code 500 Internal Server Error indique qu'une erreur
interne s'est produite sur le serveur.
Chaque réponse HTTP comprend également des en-têtes qui contiennent des informations
supplémentaires, telles que le type de contenu renvoyé et la date de la réponse.

Voici un exemple de traitement d'une réponse en Python :

import http.client

conn = http.client.HTTPSConnection("www.example.com")
conn.request("GET", "/")
res = conn.getresponse()

print(res.status, res.reason)
headers = res.getheaders()
for header in headers:
print(header[0] + ": " + header[1])

data = res.read()
print(data.decode("utf-8"))

Types de codes de retour :


Le protocole HTTP utilise des codes de retour standard pour indiquer le résultat d'une requête.
Voici quelques exemples couramment utilisés :

- 200 OK : Indique que la requête a été traitée avec succès et que la réponse contient les
données demandées.

- 301 Moved Permanently : Indique que la ressource demandée a été déplacée de manière
permanente vers une autre URL.

- 404 Not Found : Indique que la ressource demandée n'a pas été trouvée sur le serveur.

- 500 Internal Server Error : Indique qu'une erreur interne s'est produite sur le serveur et que la
requête n'a pas pu être traitée.

En Python, vous pouvez utiliser le module `http.client` ou des bibliothèques externes telles que
`requests` pour effectuer des requêtes HTTP et traiter les réponses.

Vous aimerez peut-être aussi