Lorsque vous visitez un site web, votre navigateur effectue des dizaines ou des centaines de requêtes à son serveur en arrière-plan. Le serveur répond à ces requêtes en fournissant toutes les données et tous les fichiers que le site doit charger. Cependant, le processus réel est plus complexe que cela.

Il est essentiel de comprendre le fonctionnement des requêtes HTTP si vous souhaitez optimiser les performances de votre site web. Certaines de ces mesures d’optimisation consistent à minimiser et à compresser les requêtes. Essentiellement, vous optimisez votre serveur pour mieux répondre aux requêtes HTTP.

Consultez notre guide vidéo sur les requêtes HTTP

Dans cet article, nous allons examiner de plus près le fonctionnement des requêtes HTTP. Nous vous montrerons également la structure des requêtes HTTP et comment les dépanner si nécessaire. Mettons-nous au travail !

Qu’est-ce que HTTP ?

HTTP est un protocole. En fait, l’acronyme signifie HyperText Transfer Protocol. Ce protocole régit la structure et le langage des requêtes et des réponses qui ont lieu entre les clients et les serveurs. Les clients sont généralement des navigateurs web, mais ils peuvent se présenter sous de nombreuses formes, comme les robots des moteurs de recherche.

Lorsque vous visitez des sites web par le biais d’un navigateur, l’ensemble de la connexion s’effectue via HTTP. Ce protocole vous permet de recevoir des données, notamment du texte, des images, des vidéos, des feuilles de style, des scripts, etc.

HTTP est l’une des pierres angulaires du web depuis le début des années 90. Au cours des dernières décennies, il a évolué pour devenir plus efficace. La seconde moitié des années 2010 a vu le développement de HTTP/2, qui permet aux clients de charger les ressources simultanément au lieu d’être asynchrones. Cela se traduit par une augmentation massive des performances.

En 2022, 46 % du web utilise HTTP/2. Maintenant, il y a déjà des discussions sur l’adoption de HTTP/3, qui est également connu sous le nom de HTTP-over-QUIC. HTTP/3 fonctionne avec le protocole UDP, ce qui lui confère un avantage par rapport aux connexions TCP traditionnelles (ce qu’utilisent HTTP et HTTP/2).

Qu’est-ce qu’une requête HTTP (et comment cela fonctionne) ?

Pensez à une requête HTTP comme à votre navigateur qui se connecte au serveur et lui demande une ressource spécifique ou lui envoie des données. Il existe plusieurs types de méthodes de requête HTTP, qui modifient complètement le type de réponse que vous obtenez du serveur. Les plus courantes sont :

  1. GET. Il s’agit de la méthode de requête HTTP la plus fréquemment utilisée, et de loin. Une requête GET demande au serveur un élément d’information ou une ressource spécifique. Lorsque vous vous connectez à un site web, votre navigateur envoie généralement plusieurs requêtes GET pour recevoir les données dont il a besoin pour le chargement de la page.
  2. HEAD. Avec une requête HEAD, vous recevez uniquement les informations d’en-tête de la page que vous souhaitez charger. Vous pouvez utiliser ce type de requête HTTP pour connaître la taille d’un document avant de le télécharger à l’aide de GET.
  3. POST. Votre navigateur utilise la méthode de requête HTTP POST lorsqu’il doit envoyer des données au serveur. Par exemple, si vous remplissez un formulaire de contact sur un site web et que vous l’envoyez, vous utilisez une requête POST pour que le serveur reçoive ces informations.
  4. PUT. Les requêtes PUT ont une fonctionnalité similaire à celle de la méthode POST. Toutefois, au lieu de soumettre des données, vous utilisez des demandes PUT pour mettre à jour des informations qui existent déjà sur le serveur final.

Il existe d’autres types de requêtes HTTP que vous pouvez utiliser, notamment les méthodes DELETE, PATCH et OPTIONS. Cependant, elles sont relativement peu courantes dans l’utilisation quotidienne.

L’envoi d’une requête HTTP implique l’envoi d’un message au serveur récepteur dans un format spécifique. Le serveur renvoie une réponse et le client prend des mesures en conséquence. Par exemple, il peut charger des ressources ou vous rediriger vers une autre page.

Lorsque vous obtenez une erreur HTTP, c’est généralement parce que le serveur ne peut pas répondre à votre requêtes. Le code d’erreur que vous obtenez devrait expliquer pourquoi. Parmi les causes les plus courantes des erreurs HTTP, citons l’impossibilité de se connecter au serveur et de trouver les ressources qui ont été demandées.

Essayez notre outil HTTP header Checker pour évaluer le statut de n’importe quelle page.

Introduction aux structures des requêtes et des réponses HTTP

Les requêtes et les réponses HTTP partagent des structures similaires. Si vous voulez être en mesure d’analyser les demandes et les réponses HTTP pour comprendre les erreurs potentielles de votre site, il est important que vous compreniez ces structures.

De manière générale, les requêtes HTTP sont divisées en trois sections. Examinons de près chacune d’entre elles.

Ligne de requête HTTP

Chaque requête HTTP commence par une ligne qui indique le type de méthode utilisée et la version du protocole HTTP. Par exemple, le début d’une requête HTTP GET pourrait ressembler à ceci :

GET /XXX HTTP/1.1

Dans ce cas, le paramètre « XXX » après la méthode GET indique le fichier que vous voulez recevoir.

Le début d’une réponse HTTP réitère la version du protocole que les deux parties utilisent. Il comprend également un code HTTP qui correspond à l’état de la réponse.

Si vous visitez un site web et qu’il se charge avec succès, vous verrez un message de succès HTTP 2XX :

HTTP/1.1 200 OK

Cette partie de la réponse HTTP affiche des codes d’erreur si la ressource ne se charge pas pour une raison quelconque. Si le serveur ne trouve pas la page, vous verrez un en-tête de réponse comme celui-ci :

HTTP/1.1 400 OK

Si vous comprenez les méthodes de requête et les codes d’état HTTP, la ligne de départ vous indique exactement le type de transaction qui se déroule entre le client et le serveur. Dans l’ensemble, il s’agit de la partie de la requête la plus simple à comprendre.

En-têtes de requête

Les en-têtes de requête viennent juste après les lignes de requête et ils fournissent des informations supplémentaires sur la transaction. L’en-tête spécifie des informations sur l’hôte, le logiciel de serveur web utilisé par le client final, l’agent utilisateur du client, etc.

Voici à quoi ressemble un en-tête de requête HTTP :

Host: website.com

User-Agent: Chrome/5.0 (Windows 10)

Accept-Language: en-US

Accept-Encoding: gzip, deflate

Connection: keep-alive</code.

Ce ne sont là que quelques exemples des paramètres d’en-tête HTTP que vous pouvez utiliser. Voici ce que signifie chaque ligne de cet en-tête :

  • Host : Il s’agit de l’IP ou de l’URL du serveur auquel vous adressez la demande.
  • User-agent : Ce paramètre contient des informations sur le client et son système d’exploitation (OS). Généralement, il s’agit du navigateur que vous utilisez et de sa version.
  • Accept-language : Cette ligne indique au serveur la langue préférée du client, au cas où il y aurait plusieurs versions du fichier que vous demandez.
  • Accept-encoding : Cette ligne indique le type d’encodage ou de compression que le client peut traiter.
  • Connection : Ce paramètre indique au serveur s’il doit maintenir la connexion en vie ou définir un délai d’attente pour celle-ci. Si la connexion est interrompue avant la fin de la requête, vous recevrez une erreur.

Assemblons la ligne de requête et les en-têtes pour avoir une idée de la structure globale que vous devrez utiliser :

GET /XXX HTTP/1.1

Host: website.com

User-Agent: Chrome/5.0 (Windows 10)

Accept-Language: en-US

Accept-Encoding: gzip, deflate

Connection: keep-alive</code.

Dans l’exemple ci-dessus, vous soumettez une requête GET à l’hôte website.com pour une ressource spécifique. Maintenant, voyons à quoi pourrait ressembler l’en-tête de la réponse :

HTTP/1.1 200 OK

Date: Mon, 27 Jul 2022 12:28:53 GMT

Server: Apache/2.2.14 (Win32)

Last-Modified: Wed, 22 Jul 2022 19:15:56 GMT

Content-Length: 88

Content-Type: text/html

Connection: Closed</code.

L’en-tête de la réponse commence à la deuxième ligne et comprend la date de la connexion et des informations sur le serveur web et le système d’exploitation utilisés par l’hôte. Si vous demandez un fichier, l’en-tête affichera également des informations sur sa date de dernière modification, la longueur du fichier et le type de contenu auquel vous avez affaire. La dernière ligne vous indique que la connexion est fermée puisque la requête est terminée.

Les informations et les paramètres contenus dans les en-têtes peuvent varier en fonction du type de requête que vous effectuez. Toutefois, la structure générale reste la même.

Corps du message HTTP

Le corps du message est la partie la plus simple d’une requête HTTP. Il contient les données que vous envoyez ou recevez, en fonction de la méthode de requête que vous utilisez.

Si vous demandez un fichier HTML à l’aide de la méthode GET, vous pouvez recevoir une réponse structurée comme suit :

HTTP/1.1 200 OK

Date: Mon, 27 Jul 2022 12:28:53 GMT

Server: Apache/2.2.14 (Win32)

Last-Modified: Wed, 22 Jul 2022 19:15:56 GMT

Content-Length: 88

Content-Type: text/html

Connection: Closed

<!DOCTYPE HTML PUBLIC “-//IETF//DTD HTML 2.0//EN”></code.

Le reste du fichier va ici

Le corps d’une requête ou d’une réponse HTTP est séparé de l’en-tête par une seule ligne vide. Nous n’avons pas inclus de fichier HTML complet dans l’exemple ci-dessus pour éviter toute confusion.

Comment surveiller et dépanner les requêtes HTTP ?

Il existe plusieurs façons de surveiller les requêtes HTTP sur votre site web, par exemple en utilisant des outils de gestion des performances des applications (APM). Ceux-ci vous permettent de surveiller les « transactions » sur vos sites web, comme les tâches PHP, les erreurs HTTP, les requêtes de base de données, etc.

Si vous êtes un utilisateur de Kinsta, vous avez accès à un outil APM intégré que vous pouvez activer depuis le tableau de bord MyKinsta. L’outil APM de Kinsta vous permettra de vérifier quel type de requêtes HTTP externes votre site web reçoit et de surveiller leurs statuts :

MyKinsta
MyKinsta

Il vous permet également de surveiller les erreurs HTTP récurrentes, ce qui s’avère pratique lors du dépannage de votre site web. Si vous voyez une erreur d’état HTTP sur votre site, vous pouvez activer l’APM de Kinsta, reproduire l’erreur et accéder aux détails de la requête.

L’outil APM peut également vous aider à identifier les attaques DDoS, qui devraient être assez faciles à repérer car vous verrez un barrage de requêtes HTTP. Savoir si vous avez affaire à une attaque DDoS ou à un pic de trafic vous aidera à déterminer comment gérer la situation.

Résumé

Comprendre ce que sont les requêtes HTTP et comment elles fonctionnent peut vous aider à dépanner les problèmes de votre site web. Lorsque vous rencontrez des erreurs HTTP, cela signifie que le serveur n’a pas pu répondre à la demande du client. Si vous savez quelle était cette requête et que vous comprenez le code d’erreur dans la réponse HTTP, vous disposez de suffisamment d’informations pour résoudre le problème.

Pour comprendre une requête HTTP, vous devez savoir quelles méthodes elle peut utiliser. En outre, vous devez savoir comment les demandes et les réponses HTTP sont structurées et comprendre les différents codes d’état HTTP.

Si vous utilisez l’hébergement d’application, l’hébergement de base de données et l’hébergement WordPress infogéré de Kinsta, vous avez automatiquement accès à un outil APM que vous pouvez utiliser pour surveiller les requêtes HTTP pour votre site web.

Inscrivez-vous chez Kinsta dès aujourd’hui et obtenez l’accès à cette fonctionnalité essentielle !