Qu'est-ce que HTTP ?

L'Hypertext Transfer Protocol (HTTP, littéralement « protocole de transfert hypertexte ») est utilisé pour charger des pages sur Internet à l'aide d'hyperliens.

Share facebook icon linkedin icon twitter icon email icon

HTTP

Objectifs d’apprentissage

Après avoir lu cet article, vous :

  • Définir HTTP
  • Décrire l'anatomie des requêtes et réponses HTTP
  • Comprendre comment les attaques DDoS peuvent être lancées via HTTP

Qu'est-ce que HTTP ?

L'Hypertext Transfer Protocol (HTTP) est le fondement du World Wide Web. Il est utilisé pour charger des pages web à l'aide de liens hypertextes. HTTP est un protocole de la couche application conçu pour transférer des informations entre des appareils connectés en réseau. Il s'exécute au-dessus des autres couches de la pile de protocoles réseau. Une session HTTP typique implique une machine cliente faisant une requête à un serveur, qui envoie ensuite un message de réponse.

Que contient une requête HTTP ?

Une requête HTTP est la façon dont les plateformes de communication Internet, comme les navigateurs web, demandent les informations dont elles ont besoin pour charger un site web.

Chaque requête HTTP effectuée sur Internet comporte une série de données codées qui transportent différents types d'informations. Une requête HTTP typique contient les données suivantes :

  1. Type de version HTTP
  2. une URL
  3. une méthode HTTP
  4. Les champs d'en-tête de la requête HTTP
  5. Le corps de la requête HTTP (facultatif).

Explorons plus en détail le fonctionnement de ces requêtes et la manière dont le contenu d'une requête peut être utilisé pour partager des informations.

Qu'est-ce qu'une méthode HTTP ?

Une méthode HTTP, parfois appelée verbe HTTP, indique l'action que la demande HTTP attend du serveur interrogé. Par exemple, deux des méthodes HTTP les plus courantes sont GET et POST. Une demande GET attend des informations en retour (généralement sous la forme d'un site web), tandis qu'une demande POST indique généralement que le client soumet des informations au serveur web (telles que des informations de formulaire, par exemple un nom d'utilisateur et un mot de passe soumis).

Que sont les champs d'en-tête de la requête HTTP ?

Les champs d'en-tête HTTP contiennent des informations textuelles stockées dans des paires clé-valeur. Ils sont inclus dans chaque requête HTTP (et dans la réponse : nous les examinerons plus loin). Ces champs d'en-tête communiquent des informations essentielles, telles que le navigateur utilisé par le client et les données demandées.

Exemple de champs d'en-tête de requête HTTP à partir de l'onglet réseau de Google Chrome :

HTTP request headers

Que contient le corps d'une requête HTTP ?

Le corps d'une requête est la partie qui contient un ensemble de lignes d'informations que la requête transfert. Le corps d'une requête HTTP contient toutes les informations soumises au serveur web, telles qu'un nom d'utilisateur et un mot de passe, ou toute autre donnée entrée dans un formulaire.

Que contient une réponse HTTP ?

Une réponse HTTP est un ensemble de lignes que les clients web (souvent les navigateurs) reçoivent d'un serveur Internet en réponse à une requête HTTP. Ces réponses communiquent des informations précieuses sur la base de ce qui a été demandé dans la requête HTTP.

Une réponse HTTP typique contient les données suivantes :

  1. un code de statut HTTP
  2. Les champs d'en-tête de la réponse HTTP
  3. Le corps HTTP de la réponse (facultatif)
  4. Décomposons-les :

    Qu'est-ce qu'un code de statut HTTP ?

    Les codes de statut HTTP sont des codes à 3 chiffres, le plus souvent utilisés pour indiquer si une requête HTTP a été exécutée avec succès. Les codes de statut sont répartis dans les 5 blocs suivants :

    1. 1xx Informational
    2. 2xx Succès
    3. 3xx Redirection
    4. Erreur Client 4xx
    5. 5xx Server Error
    6. Le xx fait référence à des nombres différents entre 00 et 99.

      Les codes de statut commençant par le chiffre 2 indiquent un succès. Par exemple, après qu'un client a demandé une page web, les réponses les plus courantes ont un code de statut 200 OK, indiquant que la requête a été effectuée avec succès.

      Un 4 ou un 5 au début de la réponse signifie qu'il y a eu une erreur et que la page web ne s'affichera pas. Un code de statut qui commence par un 4 indique une erreur côté client (il est très fréquent de rencontrer un code de statut « 404 NOT FOUND » en cas de frappe dans une URL). Un code de statut commençant par 5 indique une anomalie côté serveur. Les codes de statut peuvent également commencer par un 1 ou un 3, qui indiquent respectivement une réponse d'information et une redirection.

      Que sont les champs d'en-tête de la réponse HTTP ?

      Tout comme une requête HTTP, une réponse HTTP comporte des champs d'en-tête qui véhiculent des informations importantes telles que la langue et le format des données envoyées dans le corps de la réponse.

      Exemple de champs d'en-tête de réponse HTTP à partir de l'onglet réseau de Google Chrome :

      HTTP response headers

      Que contient un corps de réponse HTTP ?

      Les réponses HTTP réussies aux demandes GET ont généralement un corps qui contient les informations demandées. Dans la plupart des requêtes web, il s'agit de données HTML qu'un navigateur web traduira en page web.

      Des attaques DDoS peuvent-elles être lancées via HTTP ?

      Gardez à l'esprit que HTTP est un protocole « sans état », ce qui signifie que chaque commande s'exécute indépendamment de toute autre commande. Dans la spécification d'origine, les requêtes HTTP créaient et fermaient chacune une connexion TCP. Dans les versions plus récentes du protocole HTTP (HTTP 1.1 et version ultérieure), la connexion persistante permet à plusieurs requêtes HTTP d'être transmises sur une connexion TCP persistante, ce qui améliore la consommation des ressources. Dans le contexte d'attaques DoS ou DDoS, des requêtes HTTP en grandes quantités peuvent être utilisées pour monter une attaque sur un dispositif cible, et sont considérés comme faisant partie des attaques de la couche application ou attaques de la couche 7.