HTTP et HTTPS sont des protocoles client-serveur basés sur la demande et la réponse, responsables de la communication et de la transmission de données sur le WWW. Dans ce modèle client-serveur, le client est généralement le navigateur, et le serveur peut être une application exécutant une page web. Le client envoie une requête HTTP au serveur, qui stocke les données (texte, image, fichier HTML, etc.) et renvoie une réponse au client. La réponse contient toujours des informations sur la satisfaction de la demande et, dans la plupart des cas, le contenu demandé.
Dans l’exemple ci-dessus, le navigateur correspond à un agent utilisateur typique. Tous les logiciels capables de traiter et d’afficher des données sur internet entrent dans cette catégorie d’agents utilisateurs. Les applications mobiles ou les robots des moteurs de recherche qui parcourent constamment internet en sont des exemples.
Le protocole HTTP se situe au niveau de la couche application du modèle TCP/IP, et a donc besoin d’un protocole de transport fiable pour fonctionner, qui est, dans la plupart des cas, TCP. Outre TCP, HTTP peut également utiliser d’autres protocoles de transport, tels que UDP ou SSDP, qui ne sont pas fiables. Les ressources HTTP sont accessibles à l’aide d’URL. La balise HTTP ou HTTPS au début d’une URL indique le protocole utilisé par la page web. L’URL, les documents HTML, et les liens forment un réseau de données interconnectées sur internet.
Les requêtes HTTP sont structurées comme suit :
Ligne de requête : cette ligne contient la commande, qui, dans la version 1.1 de HTTP, peut être GET, POST, HEAD, OPTIONS, PUT, DELETE, TRACE ou CONNECT, selon l’opération souhaitée. Si nous voulons ouvrir une image, la ligne ressemble à ceci :GET /images pelda.jpg HTTP/1.1
En-têtes : cette section suit la ligne de requête et permet de préciser la demande. Par exemple : Accept-Language : fr, c’est-à-dire que la réponse est demandée en français.
Une ligne vide suit les en-têtes.
Enfin, la requête se termine par une partie « message » (corps de la requête), qui est facultative.
La réponse HTTP se présente comme suit :
Informations sur l’achèvement : par exemple, http/1.1 200 OK, ce qui signifie que la demande a réussi.
En-têtes de réponse : ils suivent les informations sur l’achèvement.
Une ligne vide suit les en-têtes de réponse.
HTTPS diffère de HTTP en ce qu’il est construit sur le protocole de cryptage SSL/TLS. Généralement, HTTPS est utilisé pour les sites web qui nécessitent un mot de passe pour se connecter ou pour les sites web sur lesquels des transactions financières sont effectuées. Les navigateurs savent qu’un site web est fiable, car les serveurs web utilisant HTTPS doivent obtenir un certificat d’une autorité de certification de confiance (VeriSign, Microsoft, etc.). Une fois confirmé, les navigateurs indiquent également dans la barre d’adresse que le site est fiable en utilisant HTTPS.