Comment utiliser l'en-tête HTTP Host ?

Développeur web, découvrez l'en-tête HTTP Host pour sécurité, performance et SEO. Utilisez-le avec Apidog pour API.

Louis Dupont

Louis Dupont

14 September 2025

Comment utiliser l'en-tête HTTP Host ?

Apidog pour les entreprises

Déploiement sur site

SSO & RBAC

Conforme SOC 2

Découvrir Apidog Enterprise

L'en-tête d'hôte HTTP est un élément crucial de chaque requête web. Il indique au serveur le nom de domaine auquel le client tente d'accéder. Par exemple, lorsque vous tapez https://www.apidog.com dans votre navigateur, celui-ci envoie une requête avec l'en-tête d'hôte Host: www.apidog.com. De cette façon, le serveur sait quel site web vous servir.

Mais pourquoi est-ce important ? Et comment pouvez-vous l'utiliser pour améliorer votre sécurité et vos performances en tant que développeur web ? Cet article répondra à ces questions et vous montrera quelques bonnes pratiques et exemples pour prévenir les attaques par en-tête d'hôte HTTP. Commençons !

button

Qu'est-ce que l'en-tête d'hôte HTTP ?

L'en-tête d'hôte HTTP est un champ d'en-tête HTTP standard qui est requis pour chaque requête HTTP/1.1. Il a été introduit dans RFC 2616 pour résoudre le problème de l'hébergement virtuel, où plusieurs sites web peuvent partager la même adresse IP et le même port. Sans l'en-tête d'hôte, le serveur ne saurait pas quel site web servir, et le client ne saurait pas quel site web afficher.

Voici un exemple de requête HTTP avec l'en-tête Host :

GET / HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

Dans cet exemple, l'en-tête Host est défini sur www.example.com, ce qui indique au serveur que le client souhaite accéder au site web ou à l'application hébergée sur www.example.com.

Les avantages de l'en-tête d'hôte HTTP :

L'en-tête d'hôte est important pour plusieurs raisons :

À quoi sert l'en-tête Host ?

L'objectif principal de l'en-tête Host HTTP est d'aider à identifier le composant ou l'application back-end spécifique avec lequel le client souhaite communiquer. Dans les scénarios où plusieurs sites web, applications web ou services sont hébergés sur la même adresse IP et le même serveur, l'en-tête Host joue un rôle crucial dans le routage des requêtes entrantes vers la destination prévue.

Sans un en-tête Host correctement formaté, ou s'il est complètement absent, des problèmes peuvent survenir lors de la tentative de diriger la requête vers la bonne application, ce qui peut entraîner des erreurs de routage ou un comportement non intentionnel.

Comment prévenir les attaques par en-tête d'hôte HTTP ?

L'en-tête d'hôte HTTP peut être utilisé pour améliorer la sécurité de votre site web et le protéger contre diverses attaques. Voici quelques conseils sur la façon de l'utiliser pour la sécurité :

Valider l'en-tête Host

Vous devez toujours valider l'en-tête Host côté serveur et rejeter toute requête qui ne correspond pas au nom de domaine attendu. Cela peut empêcher les attaques par injection d'en-tête Host, où un attaquant peut manipuler l'en-tête Host pour inciter le serveur à effectuer des actions malveillantes, telles que l'envoi d'informations sensibles à un autre domaine, le contournement du contrôle d'accès ou l'exécution de code arbitraire. Vous pouvez utiliser une liste blanche ou une expression régulière pour valider l'en-tête Host, en fonction de vos besoins.

Utiliser HTTPS et HSTS

Vous devez toujours utiliser HTTPS (HTTP Secure) pour chiffrer la communication entre le client et le serveur. Cela peut empêcher l'écoute clandestine, la falsification et les attaques par rejeu. Vous devez également utiliser HSTS (HTTP Strict Transport Security) pour forcer le client à utiliser HTTPS et éviter les attaques de suppression SSL, où un attaquant peut rétrograder la connexion de HTTPS à HTTP et intercepter le trafic. Vous pouvez utiliser l'en-tête Strict-Transport-Security pour activer HSTS, tel que Strict-Transport-Security: max-age=31536000; includeSubDomains; preload.

Utiliser SNI et SAN

Il serait préférable d'utiliser SNI (Server Name Indication) et SAN (Subject Alternative Name) pour prendre en charge plusieurs certificats SSL sur la même adresse IP et le même port. SNI est une extension du protocole SSL/TLS qui permet au client d'envoyer l'en-tête Host pendant la poignée de main SSL, afin que le serveur puisse choisir le certificat approprié pour le site web.

SAN est une extension du certificat X.509 qui permet au certificat d'inclure plusieurs noms de domaine ou adresses IP afin que le client puisse vérifier le certificat par rapport à l'en-tête Host. Vous pouvez utiliser des outils comme OpenSSL ou Let’s Encrypt pour générer et gérer vos certificats SSL avec SNI et SAN.

Comment utiliser l'en-tête d'hôte HTTP pour les performances

L'en-tête d'hôte HTTP peut également être utilisé pour améliorer les performances de votre site web et l'optimiser pour la vitesse et l'évolutivité. Voici quelques conseils sur la façon de l'utiliser pour les performances :

Utiliser CDN et DNS.

Vous devez utiliser CDN (Content Delivery Network) et DNS (Domain Name System) pour distribuer le contenu de votre site web sur plusieurs serveurs et emplacements, et pour résoudre votre nom de domaine vers le serveur le plus proche. Cela peut réduire la latence, la bande passante et la charge sur votre serveur d'origine, et améliorer l'expérience utilisateur et la disponibilité de votre site web. Vous pouvez utiliser des services comme Cloudflare, AWS CloudFront ou Google Cloud CDN pour configurer votre CDN et DNS.

Utiliser HTTP/2 et ALPN.

Vous devez utiliser HTTP/2 et ALPN (Application-Layer Protocol Negotiation) pour mettre à niveau votre protocole HTTP et activer le multiplexage, la compression, la priorisation et le push du serveur. HTTP/2 est une version plus récente de HTTP qui permet d'envoyer plusieurs requêtes et réponses sur une seule connexion TCP, réduisant ainsi la surcharge et la congestion de HTTP/1.1. ALPN est une extension du protocole SSL/TLS qui permet au client et au serveur de négocier le meilleur protocole pour la connexion, tel que HTTP/2 ou HTTP/1.1. Vous pouvez utiliser les en-têtes Upgrade et ALPN pour activer HTTP/2 et ALPN, tels que Upgrade: h2c et ALPN: h2.

Utiliser la mise en cache et la compression.

Vous devez utiliser la mise en cache et la compression pour réduire la taille et la fréquence du contenu de votre site web, et pour améliorer le temps de réponse et l'utilisation de la bande passante. La mise en cache est une technique qui permet au client ou au serveur de stocker et de réutiliser le contenu du site web, tel que HTML, CSS, JS, images, etc., sans le demander à nouveau.

La compression est une technique qui permet au serveur de réduire la taille du contenu du site web en supprimant les données inutiles ou redondantes, telles que les espaces blancs, les commentaires, etc. Vous pouvez utiliser les en-têtes Cache-Control, Expires, ETag et Last-Modified pour contrôler le comportement de la mise en cache, et les en-têtes Content-Encoding, Accept-Encoding et Vary pour activer la compression, tels que Cache-Control: public, max-age=86400, Content-Encoding: gzip et Vary: Accept-Encoding.

Comment utiliser l'en-tête d'hôte HTTP avec apidog

Apidog est un outil puissant et facile à utiliser qui vous aide à concevoir, tester et documenter vos API. Il prend en charge diverses fonctionnalités qui rendent votre développement d'API plus rapide et plus fluide, telles que les serveurs simulés, les générateurs de code, la collaboration, etc.

button

Vous pouvez utiliser l'en-tête d'hôte HTTP pour tester et déboguer vos API sur apidog. Vous pouvez utiliser le testeur d'API intégré pour envoyer des requêtes à vos points de terminaison d'API et voir les réponses et les journaux en temps réel.

  1. Cliquez sur le bouton "Nouvelle requête".
Apidog's New Request

2. Sélectionnez la méthode HTTP que vous souhaitez utiliser et entrez l'URL de l'API à laquelle vous souhaitez accéder.

URL of the API

3. Cliquez sur l'onglet "Headers" et ajoutez l'en-tête d'autorisation HTTP et Auth pour modifier votre type d'autorisation.

Headers
Auth in Apidog

4. Cliquez sur le bouton "Envoyer" et vérifiez le code d'état de la réponse, les en-têtes et le corps. Si le jeton est valide, le code d'état doit être 200 (OK) et le corps doit contenir la ressource demandée. Si le jeton n'est pas valide, le code d'état doit être 401 (Non autorisé) ou 403 (Interdit) et le corps doit contenir un message d'erreur.

Apidog Request Response

Conclusion

L'en-tête d'hôte HTTP est un outil puissant et polyvalent qui peut vous aider à améliorer votre sécurité et vos performances en tant que développeur web. Il peut également vous aider à créer, gérer, tester et documenter vos API avec Apidog.

button

Dans cet article, je vous ai montré quelques bonnes pratiques et exemples de la façon d'utiliser efficacement l'en-tête d'hôte HTTP. J'espère que vous avez appris quelque chose de nouveau et d'utile grâce à cet article de blog. Merci de votre lecture !

Explore more

Comment utiliser Deepseek R1 en local avec Cursor

Comment utiliser Deepseek R1 en local avec Cursor

Apprenez à configurer DeepSeek R1 local avec Cursor IDE pour une aide au codage IA privée et économique.

4 June 2025

Comment exécuter Gemma 3n sur Android ?

Comment exécuter Gemma 3n sur Android ?

Apprenez à installer et exécuter Gemma 3n sur Android via Google AI Edge Gallery.

3 June 2025

Comment utiliser Claude Code avec GitHub Actions

Comment utiliser Claude Code avec GitHub Actions

Découvrez Claude Code avec GitHub Actions : revues de code, corrections de bugs, implémentation de fonctionnalités. Tutoriel pour développeurs.

29 May 2025

Pratiquez le Design-first d'API dans Apidog

Découvrez une manière plus simple de créer et utiliser des API