HTTP (Hyper Text Transfer Protocol) et HTTPS (Hyper Text Transfer Protocol Secure)
HTTP c'est quoi ?
HTTP est un protocole pour transférer des données au sein d'un réseau, la plupart du temps le protocole HTTP est utilisé pour les site web et les API. Il existent 2 principales catégories dans les messages HTTP :
-
Les requêtes : Une requête HTTP est envoyée par le client pour demander des actions ou des ressources spécifiques au serveur. Si vous observez une requête HTTP vous vous apercevrez qu'elle est composée de différentes parties :
1. Ligne de Requête : Elle inclut la méthode HTTP (GET, POST, PUT, DELETE, etc.), l'URI (Uniform Resource Identifier) de la ressource demandée, et la version du protocole HTTP.
2. En-têtes (Headers) : Fournissent des informations supplémentaires sur la requête ou le client, comme le type de contenu accepté (Accept
), le type de contenu envoyé (Content-Type
), les cookies (Cookie
), etc.
3. Corps (Body) : Non présent dans toutes les requêtes, le corps contient les données envoyées avec la requête, par exemple, les données d'un formulaire soumis via une méthode POST.
-
Les réponses : Une réponse HTTP est envoyée par le serveur en réaction à une requête HTTP reçue. Elle se compose de :
1. Ligne de Statut : Inclut la version du protocole HTTP, un code de statut (par exemple, 200 OK, 404 Not Found, 500 Internal Server Error) et une phrase de raison expliquant le code de statut.
2. En-têtes (Headers) : Fournissent des informations sur le serveur et la réponse, comme le type de contenu de la réponse (Content-Type
), les cookies (Set-Cookie
), la mise en cache (Cache-Control
), etc.
3. Corps (Body) : Contient les données de la réponse proprement dites, telles que le contenu d'une page web HTML, une image, des données JSON, etc.
Exemples :
requête :
GET /hello.txt HTTP/1.1
User-Agent : curl/7.63.0 libcurl/7.63.0 OpenSSL/1.1.l zlib/1.2.11
Host : www.example.com
Accept-Language : en
réponse :
HTTP/1.1 200 OK
Date : Wed, 30 Jan 2019 12:14:39 GMT
Server : Apache
Last-Modified : Mon, 28 Jan 2019 11:17:01 GMT
Accept-Ranges : bytes
Content-Length : 12
Vary : Accept-Encoding
Content-Type : text/plain
Hello World !
No Comments