---
title: "Comment envoyer des en-têtes HTTP avec cURL"
slug: http-headers-with-curl
date: 2026-02-22T07:24:31+00:00
modified: 2026-02-22T07:24:33+00:00
permalink: https://brightdata.fr/blog/savoir-faire/http-headers-with-curl
type: blog
---

[ Blog ](https://brightdata.fr/blog "Blog") / [How Tos](https://brightdata.fr/blog/savoir-faire)







 [How Tos](https://brightdata.fr/blog/savoir-faire)

# Comment envoyer des en-têtes HTTP avec cURL

Découvrez la puissance des en-têtes HTTP dans le Scraping web et apprenez à utiliser curl pour envoyer efficacement des en-têtes personnalisés, améliorant ainsi la collecte de données et l’interaction avec le serveur.

 9 min de lecture





 [ ![Bright Data favicon](https://media.brightdata.fr/2021/05/favicon.svg) ](https://brightdata.com/blog/authors/ndafara-tsamba)

 [Ndafara Tsamba

 ](https://brightdata.com/blog/authors/ndafara-tsamba)





 ![How to Send HTTP Headers with cURL main blog image](https://media.brightdata.fr/2024/04/How-to-Send-HTTP-Headers-with-cURL.svg)





Le protocole HTTP (Hypertext Transfer Protocol) est un [protocole sans état](https://byjus.com/gate/difference-between-stateless-and-stateful-protocol/) qui suit le modèle client-serveur, dans lequel un client effectue une requête puis attend une réponse du serveur. La requête comprend des détails tels que la méthode HTTP, l’emplacement du serveur, le chemin d’accès, la chaîne de requête et les en-têtes.

Les en-têtes HTTP sont des champs ou des listes de chaînes sous forme de paires clé-valeur qui facilitent la transmission de métadonnées et d’instructions. Ils jouent un rôle essentiel dans la définition de paramètres tels que le type de contenu, le comportement de mise en cache et l’authentification, garantissant ainsi des interactions efficaces et sécurisées entre les clients et les serveurs. Dans [le Scraping web](/blog/how-tos/what-is-web-scraping), les en-têtes HTTP vous permettent de personnaliser les requêtes, ce qui permet aux Scrapers d’imiter les agents utilisateurs, de contrôler la négociation de contenu et de gérer l’authentification selon les politiques et protocoles des sites web.

Parmi les cas d’utilisation courants des en-têtes HTTP dans le Scraping web, on peut citer la modification de l’agent utilisateur (UA) ou du type de réponse, l’exécution de requêtes conditionnelles et l’authentification auprès des interfaces de programmation d’applications (API).

Dans cet article, vous apprendrez comment envoyer des en-têtes HTTP avec[curl](/faqs/curl/what-is-curl).

## Envoi d’en-têtes HTTP avec cURL

Avant de commencer ce tutoriel, vérifiez que curl est installé sur votre système d’exploitation en exécutant la commande suivante dans votre terminal :

```none
curl --version

```

S’il est installé, vous verrez un numéro de version dans la sortie, comme ceci :

```none
curl 7.55.1 (Windows) libcurl/7.55.1 WinSSL
Date de sortie : [non publié]
Protocoles : dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp
Fonctionnalités : AsynchDNS IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL

```

Si vous obtenez un message d’erreur, tel que «`curl n'est pas reconnu comme une commande interne ou externe, un programme exécutable ou un fichier batch`» ou «`commande introuvable` », vous devez[installer curl](https://curl.se/download.html).

Vous aurez également besoin d’un outil pour inspecter les en-têtes, tel que[httpbin.org](http://httpbin.org/), qui est un service simple de requêtes et de réponses HTTP.

Si vous avez déjà utilisé curl, vous savez que la syntaxe curl ressemble à ceci :

```none
curl [options] [url]

```

Cela signifie que si vous souhaitez télécharger une page web à partir de `mywebpage.com`, vous devez exécuter la commande suivante :

```none
curl www.mywebpage.com

```

## En-têtes cURL

Pour afficher les en-têtes envoyés par curl à l’aide de httpbin.org, ouvrez votre ligne de commande et exécutez la commande suivante :

```none
curl http://httpbin.org/headers

```

Votre résultat devrait inclure une liste des en-têtes :

```none
{
  "headers": {
    "Accept": "*/*",
    "Host": "httpbin.org",
    "User-Agent": "curl/7.55.1",
    "X-Amzn-Trace-Id": "Root=1-65fd2eb0-0617353714d52f3777c9c267"
  }

```

Les en-têtes `Accept`, `Host` et `User-Agent` sont envoyés par défaut avec curl.

L’en-tête `Accept` indique au serveur les types de médias que le client peut accepter. Il communique au serveur les types de contenu que le client est prêt à accepter, ce qui permet la négociation de contenu entre le client et le serveur.

Un en-tête `Accept` indiquant que le client préfère JSON se présente comme suit :

```none
Accept: application/json

```

Le champ `User-Agent` contient les détails de votre client, qui, dans ce cas, est l’application curl fonctionnant sous la version 7.55.1 (ce numéro de version correspondra à votre version).

L’en-tête `Host` identifie de manière unique le domaine web (*c’est-à-dire* l’hôte) et le port vers lequel la requête HTTP est envoyée. Si aucun port n’est inclus dans la requête, les valeurs par défaut sont utilisées (*c’est-à-dire* le port 80 pour HTTP et le port 443 pour HTTPS).

`X-Amzn-Trace-Id` est le seul en-tête de la sortie qui n’est pas un en-tête par défaut. Cet en-tête indique que votre requête a été envoyée à un service Amazon Web Services (AWS), tel qu’un équilibreur de charge AWS, et peut être utilisé pour tracer les requêtes HTTP.

Pour vérifier que ces en-têtes ont été envoyés par curl par défaut, vous pouvez utiliser le mode `verbose`. Le drapeau correspondant est `-v` ou `--verbose` et affiche des informations détaillées sur la requête et la réponse, y compris les en-têtes.

Exécutez la commande suivante pour afficher les en-têtes par défaut envoyés par curl :

```none
curl -v http://httpbin.org/headers

```

Votre sortie devrait ressembler à ceci :

```none
*   Trying 50.16.63.240...
* TCP_NODELAY set
* Connected to httpbin.org (50.16.63.240) port 80 (#0)
> GET /headers HTTP/1.1
> Host: httpbin.org
> User-Agent: curl/7.55.1
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Fri, 22 Mar 2024 07:18:00 GMT
< Content-Type: application/json
< Content-Length: 173
< Connection: keep-alive
< Server: gunicorn/19.9.0
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Credentials: true
<
{
  "headers": {
    "Accept": "*/*",
    "Host": "httpbin.org",
    "User-Agent": "curl/7.55.1",
    "X-Amzn-Trace-Id": "Root=1-65fd30a8-624365ad52781957578cd5b1"
  }
}
* Connexion n° 0 à l'hôte httpbin.org laissée intacte

```

Les lignes avec un signe supérieur à (&gt;) indiquent ce que votre client (curl) a envoyé au point de terminaison. Cette sortie confirme que les en-têtes suivants ont été envoyés :

- `GET`(méthode HTTP) vers le point de terminaison/en-têtes
- `Hôte`avec la valeur`httpbin.org`
- `User-Agent`avec la valeur`curl/7.55.1`
- `Accept`avec la valeur`*/*`

Dans le résultat, les lignes comportant un signe inférieur à, telles que `< Content-Type: application/json`, reflètent les en-têtes que vous avez envoyés.

## <a></a>Modifier les en-têtes par défaut à l’aide du drapeau -H

Le drapeau `-H` ou `--header` est utilisé pour transmettre des en-têtes personnalisés au serveur et peut également être utilisé à des fins de test.

Par exemple, pour modifier `l'agent utilisateur` de `curl/7.55.1` à `Your-New-User-Agent`, utilisez la commande suivante :

```none
curl -H "User-Agent: Your-New-User-Agent" http://httpbin.org/headers

```

Votre sortie ressemble à ceci :

```none
{
  "headers": {
    "Accept": "*/*",
    "Host": "httpbin.org",
    "User-Agent": "Your-New-User-Agent",
    "X-Amzn-Trace-Id": "Root=1-65fd5123-3ebe566a4681427c6996c72c"
  }
}

```

Si vous souhaitez remplacer l’en-tête `Accept` `*/*`, qui accepte tout type de contenu, par `application/json`, qui accepte uniquement le contenu au format JSON, utilisez la commande suivante :

```none
curl --header "Accept: application/json" http://httpbin.org/headers

```

Votre résultat ressemble à ceci :

```none
{
  "headers": {
    "Accept": "application/json",
    "Host": "httpbin.org",
    "User-Agent": "curl/7.55.1",
    "X-Amzn-Trace-Id": "Root=1-65fd55c3-05c21f81770c1c5e6343b1fc"
  }
}

```

> **Remarque :** dans le deuxième exemple, `--header` a été utilisé à la place de `-H`. `--header` et `-H` sont interchangeables et remplissent la même fonction.

Depuis la version 7.55.0 de curl, vous pouvez également transmettre un fichier contenant vos en-têtes. Par exemple, si le nom du fichier contenant vos en-têtes est `header_file`, vous pouvez utiliser la commande suivante pour transmettre un fichier contenant vos en-têtes :

```none
Curl -H @header_file

```

## <a></a>Envoyer des en-têtes personnalisés

Les en-têtes personnalisés sont définis par les développeurs et contiennent des informations supplémentaires sur les requêtes HTTP, en plus de celles fournies par les en-têtes standard.

Pour envoyer un en-tête personnalisé avec curl, vous pouvez utiliser le drapeau `-H`. Par exemple, si vous souhaitez envoyer un en-tête personnalisé appelé `My-Custom-Header` avec la valeur `value de l'en-tête personnalisé`, exécutez la commande suivante :

```none
curl -H "My-Custom-Header: Value of custom header" http://httpbin.org/headers

```

Votre sortie ressemble à ceci :

```none
{
  "headers": {
    "Accept": "*/*",
    "Host": "httpbin.org",
    "My-Custom-Header": "Value of custom header",
    "User-Agent": "curl/7.55.1",
    "X-Amzn-Trace-Id": "Root=1-65fd7d2a-3b683be160ff2965023b3a31"
  }
}

```

## <a></a>Envoyer des en-têtes vides

Dans certains cas, il est nécessaire d’envoyer des en-têtes vides, par exemple pour se conformer à des exigences API spécifiques qui imposent certains en-têtes même s’ils ne contiennent aucun contenu. Par exemple,[l’en-tête HTTP Strict Transport Security (HSTS)](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security)est utilisé pour imposer des connexions HTTPS sécurisées sur les sites Web. Bien que cet en-tête comprenne généralement des directives sur la durée et le comportement HSTS, l’envoyer avec une valeur vide garantit l’application immédiate du HSTS.

Vous pouvez également utiliser des en-têtes vides pour effacer ou réinitialiser des en-têtes. Par exemple, si vous souhaitez réinitialiser ou effacer un en-tête qui était précédemment défini par défaut, l’envoi d’un en-tête vide permet d’effacer la valeur de l’en-tête.

Pour envoyer un en-tête vide avec curl, vous devez spécifier le nom de l’en-tête suivi d’un point-virgule pour indiquer une valeur vide. La commande suivante vous montre comment envoyer un en-tête personnalisé vide appelé `My-Custom-Header`:

```none
curl -H "My-Custom-Header;" http://httpbin.org/headers

```

La sortie affiche `My-Custom-Header` avec une valeur vide :

```none
{
  "headers": {
    "Accept": "*/*",
    "Host": "httpbin.org",
    "My-Custom-Header": "",
    "User-Agent": "curl/7.55.1",
    "X-Amzn-Trace-Id": "Root=1-65fd84e2-7a42d9d62a42741e448c426f"
  }
}

```

## <a></a>Supprimer un en-tête

Pour supprimer un en-tête avec curl, vous devez spécifier le nom de l’en-tête suivi d’un deux-points sans valeur.

Par exemple, pour supprimer l’en-tête `User-Agent` par défaut, envoyez la commande suivante :

```none
curl -H "User-Agent:" http://httpbin.org/headers

```

La réponse ne contient pas l’en-tête `User-Agent`, ce qui confirme que l’en-tête a été supprimé :

```none
{
  "headers": {
    "Accept": "*/*",
    "Host": "httpbin.org",
    "X-Amzn-Trace-Id": "Root=1-65fd862d-13b181583501ae11046374a1"
  }
}

```

## <a></a>Envoyer plusieurs en-têtes

Jusqu’à présent, vous avez vu des exemples qui ne comprennent qu’un seul en-tête, mais il est possible d’envoyer plusieurs en-têtes avec curl. Il vous suffit d’inclure plusieurs fois le drapeau `-H`.

Par exemple, si vous souhaitez envoyer deux en-têtes (`Custom-Header-1` et `Custom-Header-2`) avec les valeurs `un` et `deux` respectivement, exécutez la commande suivante :

```none
curl -H "Custom-Header-1: one" -H "Custom-Header-2: two" http://httpbin.org/headers

```

Votre résultat ressemblera à ceci :

```none
{
  "headers": {
    "Accept": "*/*",
    "Custom-Header-1": "one",
    "Custom-Header-2": "two",
    "Host": "httpbin.org",
    "User-Agent": "curl/7.55.1",
    "X-Amzn-Trace-Id": "Root=1-65fd8781-143be3502c559bc5605fc6f1"
  }
}

```

## <a></a>Conclusion

Dans cet article, vous avez découvert les en-têtes HTTP et comment les envoyer avec curl.

Si vous recherchez une solution complète de Scraping web, essayez[Bright Data](/). Elle propose des outils et des services tels que[des services Proxy](/proxy-types), qui permettent de garantir l’anonymat et d’éviter le blocage des adresses IP, et[Web Unlocker](/products/web-unlocker), qui vous aide à accéder à des contenus soumis à des restrictions géographiques [sans CAPTCHA](/products/web-unlocker/captcha-solver).

Commencez votre essai gratuit dès aujourd’hui !



Contacter ventesEssai gratuit![google social icon](/wp-content/themes/brightdata/assets/images/ic_google.svg)









 Table des matières







Dedicated Scraper APIs &amp; No-Code Scrapers

Over 1000 scrapers for all popular domains. Simplify your web scraping.

[See pricing](/pricing/web-scraper "See pricing")

Just want data? Skip scraping.

Hundreds of ready-to-use datasets from all popular domains.

[See pricing](/pricing/datasets "See pricing")







 [ ](https://news.ycombinator.com/submitlink?t=Comment+envoyer+des+en-t%C3%AAtes+HTTP+avec+cURL&u=https://brightdata.fr/blog/savoir-faire/http-headers-with-curl) [ ](https://www.linkedin.com/shareArticle?mini=true&title=Comment+envoyer+des+en-t%C3%AAtes+HTTP+avec+cURL&url=https://brightdata.fr/blog/savoir-faire/http-headers-with-curl) [ ](http://www.reddit.com/submit?title=Comment+envoyer+des+en-t%C3%AAtes+HTTP+avec+cURL&url=https://brightdata.fr/blog/savoir-faire/http-headers-with-curl)







##  Vous pourriez aussi être intéressé par

 [ ![curl post request guide](https://media.brightdata.fr/2023/12/curl-GET-Request-Guide-1.svg) ](https://brightdata.fr/blog/savoir-faire/curl-post-request-guide "Guide des requêtes POST avec cURL")

 [How Tos



 ![White number one with a flame on top.](https://media.brightdata.fr/2023/03/Favicon-2-1-50x50.png)

Ivan Kahl





### Guide des requêtes POST avec cURL

Découvrez les requêtes POST avec cURL : de quoi s’agit-il, comment envoyer une requête POST avec cURL, etc.



 06-Dec-2023

 14 min de lecture

 ](https://brightdata.fr/blog/savoir-faire/curl-post-request-guide)

 [ ![Guide to using cURL with Python](https://media.brightdata.fr/2023/04/Guide-to-Using-cURL-with-Python.svg) ](https://brightdata.fr/blog/savoir-faire/curl-with-python "Comment utiliser cURL avec Python")

 [How Tos









### Comment utiliser cURL avec Python

Dans cet article, vous apprendrez comment Python et cURL peuvent être utilisés ensemble pour automatiser les requêtes GET, POST et PUT, et pour télécharger des fichiers et des pages web.



 13-Apr-2023

 15 min de lecture

 ](https://brightdata.fr/blog/savoir-faire/curl-with-python)

 [ ![](https://media.brightdata.fr/2022/11/How-to-Scrape-with-Python.svg) ](https://brightdata.fr/blog/savoir-faire/web-scraping-with-python "Le web scraping avec Python : un guide pas-à-pas")

 [How Tos



 ![Antonello Zanini](https://media.brightdata.fr/2022/12/Antonello-Zanini-2-50x50.jpg)

Antonello Zanini

Technical Writer





### Le web scraping avec Python : un guide pas-à-pas

Apprenez à faire du web scraping avec Python afin de recueillir rapidement des données sur plusieurs sites web, ce qui vous permet d’économiser du temps et des efforts.



 29-Nov-2022

 25 min de lecture

 ](https://brightdata.fr/blog/savoir-faire/web-scraping-with-python)
