
Qu'est-ce que HTTP ?
http-iconHTTP est l'acronyme de "hypertext transfer protocol" et est utilisé pour transférer des données sur le Web.
Il s'agit d'un protocole essentiel à la compréhension des développeurs web et, en raison de son utilisation généralisée, il est également utilisé pour le transfert de données et de commandes dans les applications de l'ITO.
La première version du protocole n'avait qu'une seule méthode, à savoir GET, qui demandait une page à un serveur.
La réponse du serveur était toujours une page HTML.
Pour vous donner une idée de la simplicité du protocole HTTP au départ, jetez un coup d'œil à la spécification originale qui n'était qu'une page.
Il y a eu plusieurs versions de HTTP à partir de la version originale 0.9.
La version actuelle est la 1.1 et a été révisée pour la dernière fois en 2014.
Comment ça marche
Comme la plupart des protocoles Internet http, il s'agit d'un protocole de commande et de réponse en mode texte utilisant un modèle de communication client-serveur.
Bases du protocole HTTP
Le client fait une demande et le serveur y répond.
Le protocole HTTP est également un protocole sans état, ce qui signifie que le serveur n'est pas tenu de stocker les informations de session, et que chaque requête est indépendante de l'autre.
Cela signifie que :
Toutes les demandes proviennent du client ( votre navigateur )
Le serveur répond à une demande.
Les requêtes (commandes) et les réponses sont en texte lisible.
Les demandes sont indépendantes les unes des autres et le serveur n'a pas besoin de suivre les demandes.
Structure des demandes et des réponses
Les structures des messages de demande et de réponse sont les mêmes et sont présentées ci-dessous :
http-request-response-structure
Une demande consiste en :
Une commande ou une demande + des en-têtes optionnels + un contenu de corps optionnel.
Une réponse consiste en :
Un code de statut + des en-têtes optionnels + un contenu facultatif.
Une simple combinaison CRLF (retour chariot et saut de ligne) est utilisée pour délimiter les parties, et une simple ligne blanche (CRLF ) indique la fin des en-têtes.
Si la demande ou la réponse contient un corps de message, celui-ci est indiqué dans l'en-tête.
La présence d'un corps de message dans une demande est signalée par un champ d'en-tête Content-Length ou Transfer-Encoding. Le cadrage du message de demande est indépendant de la sémantique de la méthode, même si celle-ci ne définit aucune utilisation d'un corps de message. - RFC 7230, section 3.3.
Demandes HTTP
Nous avons vu plus tôt le format général de réponse à la demande, nous allons maintenant couvrir le message de demande plus en détail.
La ligne de départ est obligatoire et est structurée comme suit :
Méthode + chemin des ressources + version du protocole
Exemple si nous essayons d'accéder à la page web testpage.htm sur www.testsite5.com
La ligne de départ de la demande serait
GET /test.htm HTTP/1.1
Où
L'EEG est la méthode
/testpage.htm est le chemin relatif vers la ressource.
HTTP/1.1 est la version du protocole que nous utilisons
Notes :
Un chemin relatif n'inclut pas le nom de domaine.
Le navigateur web utilise l'URL que nous entrons pour créer l'URI relatif de la ressource.
Note : L'URL (uniform resource Locator) est utilisé pour les pages web. C'est un exemple d'URI (uniform resource indicator).
La requête http réelle n'est pas affichée par le navigateur, et n'est visible qu'à l'aide d'outils spéciaux comme l'en-tête http en direct (Firefox).
HTTP vs URL
La plupart des gens savent comment entrer une url dans un navigateur web. Elle ressemble généralement à ceci.
exemple d'url-1
L'url peut également inclure le port qui est normalement caché par le navigateur, mais vous pouvez l'inclure manuellement comme indiqué ci-dessous :
url-exemple-with-port
Il indique au navigateur web l'adresse de la ressource à localiser et le protocole à utiliser pour récupérer cette ressource (http).
http est le protocole de transfert qui permet de transférer la ressource (page web, image, vidéo, etc.) du serveur au client.
Réponses HTTP et codes de réponse
Chaque demande a une réponse. La réponse consiste en un Code et description du statut 1 ou plusieurs en-têtes optionnels
Le corps du message peut comporter de nombreuses lignes, y compris des données binaires
Les codes de statut de réponse sont divisés en 5 groupes ; chaque groupe a une signification et un code à trois chiffres.
1xx - Informatif
2xx - Réussir
3xx - Choix multiple
4xx- Erreur du client
5xx - Erreur de serveur
Par exemple, une demande de page réussie renvoie un code de réponse 200 et une demande non réussie un code de réponse 400.
Exemple de réponse à une demande
Nous allons examiner les demandes et les réponses lorsque nous accédons à une simple page web
Voici ce que je saisis dans la barre d'adresse du navigateur :
navigateur-demande
et c'est la réponse que le navigateur affiche :
réponse du navigateur
et voici une capture d'écran de la demande-réponse http qui se passe en coulisses.
Exemple de demande-réponse HTTP
Remarquez que les en-têtes de demande sont automatiquement insérés par le navigateur, tout comme les en-têtes de réponse sont insérés par le serveur web.
Types de demandes
Jusqu'à présent, nous n'avons pas mentionné les types de demande, mais nous avons vu le type de demande GET dans nos exemples.
Le type ou la méthode de requête GET est utilisé pour demander une ressource à un serveur web.
GET est le type de requête le plus couramment utilisé et était le seul type de requête dans la spécification HTTP originale.
Types de requête, méthodes ou verbes
Le protocole HTTP prend désormais en charge 8 types de requêtes, également appelés méthodes ou verbes dans la documentation, ce sont
GET - Requête de ressource à partir du serveur
POST - soumission d'une ressource à un serveur (par exemple, téléchargement de fichiers)
PUT - comme POST mais remplace une ressource
DELETE - Supprimer une ressource d'un serveur
HEAD - Comme GET mais ne renvoie que les en-têtes et non le contenu
OPTIONS - Obtenir les options pour la ressource
PATCH - Apporter des modifications à une ressource
TRACE - Effectue une boucle de messages
Sur Internet, les méthodes GET (obtenir des pages web) et POST (soumettre des formulaires web) sont aujourd'hui les plus utilisées.
Les autres méthodes sont utilisées lorsque l'on travaille avec les API Web et IOT : put, delete et head.