HTTP : guide complet sur le protocole essentiel au fonctionnement du Web

Hypertext Transfer Protocol (http) est un protocole d'application pour les systèmes d'information collaboratifs. Il permet aux utilisateurs de communiquer des données sur le Web. Inventé en même temps que le HTML, celui-ci crée le premier navigateur Web interactif basé sur du texte : le « World Wide Web ». Aujourd'hui, il reste l'un des principaux moyens d'utilisation d'Internet.

Quel est son principe de fonctionnement ?

En tant que protocole requête-réponse, HTTP offre aux utilisateurs un moyen d'interagir avec des ressources Web. On citera, à ce titre, les fichiers HTML en transmettant des messages hypertexte entre les clients et les serveurs. Les clients HTTP utilisent généralement des connexions TCP (Transmission Control Protocol) pour communiquer avec les serveurs. HTTP utilise, quant à lui, des méthodes de requête spécifiques dans le but d'effectuer diverses tâches. Tous les serveurs HTTP sont ainsi basés sur GET (qui désigne une ressource spécifique dans son intégralité) et HEAD (qui demande une ressource spécifique sans le contenu du corps).

Tous ne prennent cependant pas en charge les autres méthodes. En effet, il y a également le POST, qui ajoute du contenu, des messages ou des données à une nouvelle page sous une ressource Web existante. Le PUT modifie directement une ressource web ou crée un nouvel URI si cela est nécessaire. DELETE se débarrasse d'une ressource spécifiée, tandis que TRACE montre aux utilisateurs tous les changements ou ajouts apportés à une ressource Web. Quant à OPTIONS, il montre aux utilisateurs quelles méthodes HTTP sont disponibles pour une URL spécifique. Nous avons, en outre, les méthodes CONNECT (conversion de la demande de connexion en un tunnel TCP/IP transparent) et PATCH (modification partielle d'une ressource Web).

Zoom sur les différents composants du  http

HTTP est un protocole client-serveur. Dans une simple transaction, le client fait une demande unique de contenu HTTP. Cela déclenche la recherche DNS, où le client essaie de résoudre le nom de domaine pour la demande. Il envoie ensuite la requête DNS au serveur DNS du FAI local, lequel répond avec l'adresse IP de hostname.com. Le client établit alors une connexion TCP avec cette adresse, puis envoie un paquet SYN. A son tour, le serveur Web envoie un paquet SYN-ACK, auquel le client répond avec un paquet ACK. Cela conclue l'établissement de la connexion TCP à trois voies.

La requête http, elle, est envoyée au serveur Web. Celui-ci traitera la demande, trouvera la ressource et enverra la réponse au client. Puis, ce client reçoit le premier octet du premier paquet du serveur Web qui, rappelons-le, contient les en-têtes et le contenu de la réponse HTTP. Cette dernière peut être chargée avant que le serveur Web n'envoie le deuxième segment TCP avec l'indicateur PSH défini. Le client envoie ensuite un ACK. (Le client envoie un ACK tous les deux segments qu'il reçoit de l'hôte). Il incombe au serveur Web de transmettre le troisième segment TCP avec HTTP_Continue. Après cette étape, le client pourra envoyer un paquet FIN pour fermer la connexion TCP.

web, internet

Les objectifs de son utilisation

L'objectif du protocole HTTP est de fournir un moyen standard pour les navigateurs Web et les serveurs de communiquer entre eux. Aujourd'hui, celui-ci est utilisé par de nombreuses applications autres que les navigateurs Web.  Ils transfèrent des messages aux serveurs. Soulignons que les personnes qui créent des applications choisissent volontairement http. La raison est simple : celui-ci est bien compris par une multitude de développeurs. De plus, HTTP n'est généralement pas filtré par les pare-feu réseaux conçus pour autoriser le trafic Web. En d'autres mots, les messages HTTP peuvent passer sans problème sur la plupart des réseaux domestiques et professionnels.

Qu'en est-il des avantages ?

Le premier avantage de ce protocole réside au niveau de l'adressage. HTTP utilise, en effet, un schéma d'adressage avancé. Il attribue une adresse IP avec des noms reconnaissables afin que celle-ci soit facilement identifiable dans le World Wide Web. Par rapport à la procédure standard d'adresse IP avec une série de chiffres, le public peut facilement interagir avec Internet. Par ailleurs, chaque fois qu'une application a besoin de fonctionnalités supplémentaires, HTTP a la capacité de télécharger des extensions ou des plugins. Il est même capable d'afficher les données pertinentes. Ceux-ci peuvent inclure des lecteurs Flash et Acrobat Reader.

En HTTP, chaque fichier est téléchargé à partir d'une connexion indépendante avant d'être fermé. Pour cette raison, pas plus d'un élément d'une page Web n'est transféré. Cela minimise le risque d'interception pendant la transmission. En effet, ce n'est que lorsque la connexion est établie que le processus d'établissement de liaison aura lieu en HTTP. Par conséquent, il n'y aura pas de procédure de prise de contact suite à une demande. Cela réduit considérablement la latence dans la connexion. Lorsque la page est chargée pour la première fois, toutes les pages HTTP sont stockées dans les caches Internet appelés caches de page. Le contenu est chargé plus rapidement lorsque la celle-ci est visitée à nouveau.

page web

Les trois principales fonctionnalités de HTTP

Il existe trois fonctionnalités de base qui font de HTTP un protocole simple mais puissant. En premier lieu, c'est un protocole sans connexion. Autrement dit, le client et le serveur n'interfèrent entre eux que pendant la demande et la réponse en cours. D'autres demandes sont faites sur une nouvelle connexion, comme le client et le serveur sont nouveaux l'un pour l'autre.

Par ailleurs, HTTP est indépendant du média. Ainsi, tout type de données peut être envoyé par HTTP tant que le client et le serveur savent comment gérer le contenu des données. Il est nécessaire que les deux partis spécifient le type de contenu à l'aide du type MIME approprié.

Le fait que HTTP soit sans connexion résulte directement du fait qu'il s'agisse d'un protocole sans état. En raison de cette nature du protocole, ni le client ni le navigateur ne peuvent conserver d'informations entre différentes requêtes sur les pages Web.

HTTP/1.0 utilise une nouvelle connexion pour chaque échange demande/réponse, tandis qu'une connexion HTTP/1.1 peut être utilisée pour un ou plusieurs échanges demande/réponse.

http éléments

Quels éléments peut-on contrôler à travers http ?

HTTP est extensible, ce qui a fourni au fil du temps, plus de fonctionnalités et de contrôle du Web. Dès le début, il a géré certaines fonctions comme les méthodes d'authentification ou de cache. Vers 2010, une contrainte d'assouplissement a été ajoutée.

Mise en cache des documents

La mise en cache des documents peut être contrôlée par HTTP. Le serveur peut indiquer au proxy et au client ce qu'il faut mettre en cache et pendant combien de temps. L'utilisateur, lui, peut demander à l'agent de mise en cache intermédiaire d'ignorer le document stocké.

Plus de sécurité

Pour empêcher l'espionnage et d'autres fuites de confidentialité, les navigateurs Web imposent une isolation stricte entre les sites Web. Seules les pages d'une même source peuvent accéder à toutes les informations de la page. Bien que de telles contraintes soient un fardeau pour le serveur, les en-têtes HTTP peuvent assouplir cette séparation stricte côté serveur. Cela permet aux documents de devenir des éléments d'information de différents domaines. Côté sécurité, certaines pages peuvent être protégées afin que seuls certains utilisateurs puissent y accéder. HTTP peut fournir une authentification de base en utilisant l'en-tête WWW-Authenticate, etc., ou en définissant une session spécifique à l'aide de cookies HTTP.

Les serveurs proxy et tunnel sont généralement situés sur l'intranet. Résultat, leurs véritables adresses IP restent protégées vis-à-vis des autres ordinateurs. La requête HTTP est ensuite transmise via le proxy pour surmonter cette barrière réseau. Tous les proxys ne sont pas HTTP. On notera par exemple le protocole SOCKS qui fonctionne à un niveau inférieur. D'autres protocoles, tels que ftp, peuvent être gérés par ces agents.

Autre

Par ailleurs, l'utilisation de cookies HTTP permet de lier la demande à l'état du serveur. Cela crée une session, même si Basic HTTP est un protocole sans état. Cela s'applique non seulement aux paniers d'achat de commerce électronique, mais également à tout site permettant aux utilisateurs de configurer la sortie.

Les codes de réponse http possibles

Les codes d'état HTTP sont divisés en 5 catégories différentes. Chaque catégorie donnera des indications sur la réponse, même si on ne connaît pas le code de réponse spécifique. Le premier chiffre indique le type de réponse, à savoir :

  • 1xx – Informationnel : le serveur a reçu la demande et poursuit le processus
  • 2xx – Réussi : la demande a réussi et le navigateur a reçu les informations attendues
  • 3xx (Redirection) : on a été redirigé et l'achèvement de la demande nécessite une action supplémentaire
  • 4xx (Erreur client) : Le site Web ou la page n'a pas pu être atteint, soit la page est indisponible, soit la requête contient une mauvaise syntaxe
  • 5xx (Erreur du serveur) : alors que la demande semble être valide, le serveur n'a pas pu terminer la demande

https

Sécurisation d'un site : différence entre HTTPS et HTTP

En termes simples, le protocole HTTPS est une extension de HTTP. Ce « S » dans l'abréviation vient du mot Secure et il est alimenté par Transport Layer Security (TLS). Il s'agit d'une technologie de sécurité standard qui établit une connexion cryptée entre un serveur Web et un navigateur.

Sans HTTPS, toutes les données que l'on saisit sur le site (nom d'utilisateur/mot de passe, carte de crédit ou coordonnées bancaires, toute autre donnée de soumission de formulaire, etc.) seront envoyées en texte clair et donc susceptibles d'être interceptées ou écoutées. Pour cette raison, on doit toujours vérifier qu'un site utilise HTTPS avant de saisir des informations.

En plus de crypter les données transmises entre le serveur et le navigateur utilisé, TLS authentifie également le serveur auquel on se connecte. Il protège les données transmises contre la falsification.

HTTPS peut également aider dans le référencement. En 2014, a annoncé HTTPS comme signal de classement. Dès lors, certaines études et expériences qui ont mis en œuvre HTTPS indiquent une corrélation avec des classements et une visibilité des pages plus élevées.

Newsletter

Envie de ne louper aucun de nos articles ? Abonnez vous pour recevoir chaque semaine les meilleurs actualités avant tout le monde.

Cliquez pour commenter