---
title: "Guide de l'agent utilisateur Node.js : configuration et modification"
slug: node-js-user-agent
date: 2026-02-18T06:44:31+00:00
modified: 2026-02-18T06:44:32+00:00
permalink: https://brightdata.fr/blog/donnees-web/node-js-user-agent
type: blog
---

[ Blog ](https://brightdata.fr/blog "Blog") / [Données Web](https://brightdata.fr/blog/donnees-web)







 [Données Web](https://brightdata.fr/blog/donnees-web)

# Guide de l’agent utilisateur Node.js : configuration et modification

Découvrez l’importance de définir des en-têtes User-Agent, l’agent utilisateur par défaut dans Node.js, et comment mettre en œuvre la rotation des agents utilisateurs pour échapper à la détection anti-bot.

 11 min de lecture





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

 [Antonello Zanini

Technical Writer

 ](https://brightdata.com/blog/authors/antonello-zanini)





 ![Node.js User Agent Guide hero image](https://media.brightdata.fr/2024/08/Node.js-User-Agent-Guide.svg)





Dans ce guide de configuration de l’agent utilisateur Node.js, vous découvrirez :

- Pourquoi il est important de définir l’en-tête `User-Agent`
- À quoi ressemble l’agent utilisateur par défaut dans Node.js
- Comment définir un agent utilisateur à l’aide de l’API Fetch
- Comment implémenter la rotation des agents utilisateurs dans Node.js

C’est parti !

## Pourquoi il est si important de définir un agent utilisateur

L’en-tête [`User-Agent`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent) est une chaîne qui identifie le logiciel client effectuant une requête HTTP. Il comprend généralement des informations sur le navigateur ou l’application, le système d’exploitation et l’architecture système à l’origine de la requête. Cet en-tête est généralement défini par les navigateurs Web, les clients HTTP ou tout logiciel effectuant des requêtes Web.

Par exemple, voici l’agent utilisateur actuellement défini par Chrome lors de la demande de pages :

```none
`Mozilla/5.0 (Windows NT 10.0 ; Win64 ; x64) AppleWebKit/537.36 (KHTML, comme Gecko) Chrome/127.0.0.0 Safari/537.36`
```

Vous trouverez ci-dessous une description détaillée des composants de cette chaîne d’agent utilisateur :

- `Mozilla/5.0`: initialement utilisé pour indiquer la compatibilité avec les navigateurs Mozilla, ce préfixe est désormais ajouté à des fins de compatibilité.
- `Windows NT 10.0 ; Win64 ; x64 :` indique le système d’exploitation (`Windows NT 10.0`), la plate-forme (`Win64`) et l’architecture du système (`x64`).
- `AppleWebKit/537.36`: fait référence au moteur de navigation utilisé par Chrome.
- (`KHTML, comme Gecko`) : indique la compatibilité avec les moteurs de mise en page KHTML et Gecko.
- `Chrome/127.0.0.0`: spécifie le nom et la version du navigateur.
- `Safari/537.36`: indique la compatibilité avec Safari.

En substance, l’agent utilisateur peut révéler si la requête provient d’un navigateur fiable ou d’un autre type de logiciel.

[Les robots de scraping web](/blog/how-tos/what-is-a-scraping-bot) et les scripts d’automatisation utilisent souvent des chaînes d’agent utilisateur par défaut ou non liées à un navigateur. Celles-ci peuvent révéler leur nature automatisée aux systèmes anti-robots, qui protègent les données web en examinant minutieusement les requêtes entrantes. En analysant l’en-tête `User-Agent`, ces solutions peuvent déterminer si la requête provient d’un utilisateur authentique ou d’un robot.

Pour plus d’informations, consultez notre guide sur [les agents utilisateurs pour le Scraping web](/blog/how-tos/user-agents-for-web-scraping-101).

## Quel est l’agent utilisateur par défaut de Node.js ?

À partir de la version 18, Node.js inclut la méthode [`fetch()`](https://nodejs.org/dist/latest/docs/api/globals.html) en tant qu’implémentation intégrée de [l’API Fetch](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API). Il s’agit de la méthode recommandée pour effectuer des requêtes HTTP dans Node.js, car elle ne nécessite aucune dépendance externe. Découvrez comment effectuer [des requêtes HTTP dans Node.js avec l’API Fetch](/blog/how-tos/fetch-api-nodejs).

Comme la plupart des autres clients HTTP, `fetch()` définit automatiquement un en-tête `User-Agent` par défaut lors d’une requête. C’est par exemple le cas dans la [bibliothèque Python `requests`](/faqs/python-requests/what-is-python-requests).

En particulier, l’agent utilisateur Node.js par défaut défini par `fetch()` est :

```none
`node`
```

Vous pouvez le vérifier en effectuant une requête GET vers le point de terminaison [`httpbin.io/user-agent`](https://httpbin.io/user-agent). Ce point de terminaison renvoie l’en-tête `User-Agent` de la requête entrante, ce qui vous aide à découvrir l’agent utilisateur défini par un client HTTP.

Créez un script Node.js, définissez une fonction [`async`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function) et utilisez `fetch()` pour effectuer la requête HTTP souhaitée :

```none
async function getFetchDefaultUserAgent() {

// envoyer une requête HTTP au point de terminaison HTTPBin

// pour obtenir l'agent utilisateur

const response = await fetch("https://httpbin.io/user-agent");

// lire l'agent utilisateur par défaut dans la réponse

// et l'imprimer

const data = await response.json();

console.log(data);

}

getFetchDefaultUserAgent();
```

Exécutez le code JavaScript ci-dessus et vous obtiendrez la chaîne suivante :

```none
`{ 'user-agent': 'node' }`
```

Comme vous pouvez le constater, l’agent utilisateur défini par `fetch()` dans Node.js est simplement `node`. Cette chaîne est très différente des agents utilisateurs utilisés par les navigateurs, qui peuvent déclencher [des systèmes anti-bot](/webinar/bot-detection).

Les solutions anti-bot surveillent les requêtes entrantes à la recherche de modèles suspects, tels que des chaînes d’agent utilisateur inhabituelles. Une fois détectées, elles marquent la requête comme provenant d’un bot et la bloquent. C’est pourquoi il est essentiel de modifier la valeur par défaut de l’agent utilisateur Node.js pour éviter d’être signalé !

## Comment modifier l’agent utilisateur Node.js à l’aide de l’API Fetch

La spécification de l’API Fetch ne fournit pas de méthode spécifique pour modifier l’agent utilisateur. Dans le même temps, `User-Agent` n’est rien d’autre qu’un en-tête HTTP. Cela signifie que vous pouvez personnaliser sa valeur à l’aide des [options d’en-tête`fetch()`](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch#setting_headers).

Découvrez comment définir l’en-tête `User-Agent` dans Node.js à l’aide de `fetch()`!

**Définir un agent utilisateur localement**

`fetch()` prend en charge la personnalisation des en-têtes via l’option `headers`. Utilisez-la pour définir l’en-tête `User-Agent` lorsque vous effectuez une requête HTTP spécifique, comme suit :

```none
const response = await fetch("https://httpbin.io/user-agent", {

headers: {

"User-Agent":

"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36",

},

});
```

Assemblez le tout et vous obtiendrez :

```none
async function getFetchUserAgent() {

// envoyer une requête HTTP à HTTPBin

// avec un agent utilisateur personnalisé

const response = await fetch("https://httpbin.io/user-agent", {

headers: {

« User-Agent » :

« Mozilla/5.0 (Windows NT 10.0 ; Win64 ; x64) AppleWebKit/537.36 (KHTML, comme Gecko) Chrome/127.0.0.0 Safari/537.36 »,

},

});

// lire l'agent utilisateur par défaut à partir de la réponse

// et l'imprimer

const data = await response.json();

console.log(data);

}

getFetchUserAgent();
```

Lancez le script ci-dessus, et cette fois, le résultat sera :

```none
{

'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36'

}
```

Fantastique ! L’agent utilisateur renvoyé par l’API correspond à l’agent utilisateur configuré dans le code. Vous savez désormais comment modifier l’agent utilisateur Node.js.

**Définir un agent utilisateur globalement**

Définir `l'agent utilisateur` pour chaque requête est simple, mais cela peut entraîner un code répétitif. Que faire si vous souhaitez modifier l’agent utilisateur Node.js par défaut de manière globale ? Malheureusement, à l’heure où nous écrivons ces lignes, l’API `fetch()` ne permet pas de remplacer ses paramètres par défaut de manière globale.

Vous pouvez toutefois créer une fonction wrapper pour personnaliser le comportement `de fetch()` avec les configurations de votre choix :

```none
function customFetch(url, options = {}) {

// en-têtes personnalisés

const customHeaders = {

"User-Agent":

"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36",

...options.headers, // fusionner avec tout autre en-tête passé dans les options

};

const mergedOptions = {

...options,

headers: customHeaders,

};

return fetch(url, mergedOptions);

}
```

Vous pouvez désormais effectuer une requête HTTP avec un agent utilisateur personnalisé en appelant `customFetch()` au lieu de `fetch()`:

```none
const response = await customFetch("https://httpbin.io/user-agent");
```

Le script Node.js complet sera :

```none
function customFetch(url, options = {}) {

// ajouter un en-tête d'agent utilisateur personnalisé

const customHeaders = {

"User-Agent":

"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36",

...options.headers, // fusionner avec tous les autres en-têtes passés dans les options

};

const mergedOptions = {

...options,

headers: customHeaders,

};

return fetch(url, mergedOptions);

}

async function getFetchUserAgent() {

// envoyer une requête HTTP à HTTPBin

// via le wrapper fetch personnalisé

const response = await customFetch("https://httpbin.io/user-agent");

// lire l'agent utilisateur par défaut dans la réponse

// et l'afficher

const data = await response.json();

console.log(data);

}

getFetchUserAgent();
```

Lancez le script Node.js ci-dessus, et il affichera :

```none
{

'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36'

}
```

Parfait ! Vous venez d’apprendre à définir un agent utilisateur global dans Node.js à l’aide de `fetch()`.

## Implémenter la rotation des agents utilisateurs dans Node.js

Remplacer l’en-tête `User-Agent` par défaut d’un client HTTP par celui d’un navigateur réel peut ne pas suffire pour échapper à la détection anti-bot. Si vous envoyez trop de requêtes à partir de la même adresse IP en utilisant le même agent utilisateur, les systèmes anti-scraping peuvent toujours identifier votre activité comme étant automatisée. Le problème est que vos requêtes continueront à suggérer un comportement non humain.

Pour réduire le risque de détection des bots dans Node.js, vous devez introduire de la variabilité dans vos requêtes HTTP. Une technique efficace consiste à utiliser la rotation des agents utilisateurs, qui consiste à modifier l’en-tête `User-Agent` à chaque requête. Cette approche donne l’impression que vos requêtes automatisées proviennent de différents navigateurs, ce qui les rend moins susceptibles d’être signalées par les systèmes anti-bot.

Dans la section suivante, vous apprendrez comment réaliser la rotation des agents utilisateurs dans Node.js !

**Étape n° 1 : récupérer une liste d’agents utilisateurs**

Rendez-vous sur un site tel que [WhatIsMyBrowser.com](https://www.whatismybrowser.com/guides/the-latest-user-agent/) et remplissez une liste de valeurs d’agents utilisateurs valides :

```none
const userAgents = [

"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36",

« Mozilla/5.0 (Windows NT 10.0 ; Win64 ; x64 ; rv:128.0) Gecko/20100101 Firefox/128.0 »,

« Mozilla/5.0 (Macintosh ; Intel Mac OS X 14_6) AppleWebKit/605.1.15 (KHTML, comme Gecko) Version/17.5 Safari/605.1.15 »,

« Mozilla/5.0 (Windows NT 10.0 ; Win64 ; x64) AppleWebKit/537.36 (KHTML, comme Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/126.0.2592.113 »,

// autres agents utilisateurs...

] ;
```

**Astuce**: plus ce tableau contient de chaînes d’agents utilisateurs réels, mieux c’est pour éviter la détection anti-bot.

**Étape n° 2 : choisir un agent utilisateur au hasard**

Créez une fonction qui sélectionne et renvoie de manière aléatoire une chaîne d’agent utilisateur à partir de la liste :

```none
function getRandomUserAgent() {

const userAgents = [

// agents utilisateurs omis pour plus de concision...

];

// renvoie un agent utilisateur au hasard

// extrait de la liste

return userAgents[Math.floor(Math.random() * userAgents.length)];

}
```

Décomposons ce qui se passe dans cette fonction :

- [`Math.random()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random) génère un nombre aléatoire compris entre 0 et 1
- Ce nombre est ensuite multiplié par la longueur du tableau `userAgents`.
- [`Math.floor()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/floor) arrondit le nombre obtenu à l’entier inférieur le plus proche.
- Le nombre résultant des opérations précédentes correspond à un index généré aléatoirement qui va de 0 à `userAgents.length - 1`.
- L’index est ensuite utilisé pour renvoyer un agent utilisateur aléatoire à partir du tableau des agents utilisateurs.

Chaque fois que vous appelez la fonction `getRandomUserAgent()`, vous obtiendrez probablement un agent utilisateur différent.

**Étape n° 3 : effectuer la requête HTTP avec un agent utilisateur aléatoire**

Pour implémenter la rotation des agents utilisateurs dans Node.js à l’aide de `fetch()`, définissez l’en-tête `User-Agent` avec la valeur de la fonction `getRandomUserAgent()`:

```none
const response = await fetch("https://httpbin.io/user-agent", {

headers: {

"User-Agent": getRandomUserAgent(),

},

});
```

La requête HTTP effectuée via l’API Fetch aura désormais un agent utilisateur aléatoire.

**Étape n° 4 : rassembler tous les éléments**

Ajoutez les extraits des étapes précédentes à un script Node.js, puis intégrez la logique permettant d’effectuer une requête `fetch()` dans une fonction `asynchrone`.

Voici à quoi devrait ressembler votre script Node.js final de rotation des agents utilisateurs :

```none
function getRandomUserAgent() {

const userAgents = [

"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36",

"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0",

« Mozilla/5.0 (Macintosh ; Intel Mac OS X 14_6) AppleWebKit/605.1.15 (KHTML, comme Gecko) Version/17.5 Safari/605.1.15 »,

« Mozilla/5.0 (Windows NT 10.0 ; Win64 ; x64) AppleWebKit/537.36 (KHTML, comme Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/126.0.2592.113 »,

// autres agents utilisateurs...

];

// renvoyer un agent utilisateur aléatoire

// extrait de la liste

return userAgents[Math.floor(Math.random() * userAgents.length)];

}

async function getFetchUserAgent() {

// effectuer une requête HTTP avec un agent utilisateur aléatoire

const response = await fetch("https://httpbin.io/user-agent", {

headers: {

"User-Agent": getRandomUserAgent(),

},

});

// lire l'agent utilisateur par défaut à partir de la réponse

// et l'imprimer

const data = await response.json();

console.log(data);

}

getFetchUserAgent();
```

Exécutez le script 3 ou 4 fois. Statistiquement, vous devriez voir différentes réponses d’agent utilisateur comme ci-dessous :

![different user agent responses](https://media.brightdata.fr/2024/08/different-user-agent-responses.png)Cela démontre que la rotation des agents utilisateurs fonctionne efficacement.

Et voilà ! Vous savez désormais configurer des agents utilisateurs dans Node.js à l’aide de l’API Fetch.

## Conclusion

Dans ce tutoriel, vous avez vu pourquoi vous devriez définir l’en-tête `User-Agent` et à quoi ressemble l’agent utilisateur Node.js par défaut dans fetch(). Vous avez également découvert comment remplacer cette valeur et mettre en œuvre la rotation des agents utilisateurs dans Node.js afin de contourner les systèmes anti-scraping de base. Cependant, les systèmes plus avancés peuvent toujours détecter et bloquer vos requêtes automatisées. Pour éviter les interdictions d’IP, vous pouvez [configurer un Proxy dans Node.js](/blog/proxy-101/proxy-in-node-fetch), mais même cela peut ne pas toujours suffire !

Pour une solution plus robuste, envisagez [l’API Web Scraper](/products/web-scraper), un service de Scraping web de nouvelle génération qui simplifie les requêtes web automatisées dans Node.js ou toute autre technologie. Il contourne efficacement les mesures anti-scraping grâce à des fonctionnalités telles que la rotation des adresses IP et des agents utilisateurs, rendant le Scraping web plus facile que jamais.

Inscrivez-vous dès maintenant et trouvez le produit le mieux adapté à vos projets. 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=Guide+de+l%26%238217%3Bagent+utilisateur+Node.js+%3A+configuration+et+modification&u=https://brightdata.fr/blog/donnees-web/node-js-user-agent) [ ](https://www.linkedin.com/shareArticle?mini=true&title=Guide+de+l%26%238217%3Bagent+utilisateur+Node.js+%3A+configuration+et+modification&url=https://brightdata.fr/blog/donnees-web/node-js-user-agent) [ ](http://www.reddit.com/submit?title=Guide+de+l%26%238217%3Bagent+utilisateur+Node.js+%3A+configuration+et+modification&url=https://brightdata.fr/blog/donnees-web/node-js-user-agent)







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

 [ ![cURL User Agent Guide blog image](https://media.brightdata.fr/2024/05/cURL-User-Agent-Guide.svg) ](https://brightdata.fr/blog/donnees-web/curl-user-agent "Guide de l’agent utilisateur cURL : configuration et modification")

 [Données Web



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

Antonello Zanini

Technical Writer





### Guide de l’agent utilisateur cURL : configuration et modification

Apprenez à définir et à modifier l’en-tête User-Agent dans cURL afin d’améliorer vos efforts de Scraping web.



 22-Feb-2026

 11 min de lecture

 ](https://brightdata.fr/blog/donnees-web/curl-user-agent)

 [ ![Selenium User Agent Guide Setting and Changing](https://media.brightdata.fr/2024/06/Selenium-User-Agent-Guide_-Setting-and-Changing.svg) ](https://brightdata.fr/blog/donnees-web/user-agent-selenium "Guide pour User-Agent dans Selenium : paramétrage et modification")

 [Données Web



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

Antonello Zanini

Technical Writer





### Guide pour User-Agent dans Selenium : paramétrage et modification

Apprenez à définir et à provoquer la rotation des en-têtes User-Agent dans Selenium pour améliorer vos capacités de web scraping et contourner les mesures anti-bot.



 09-Jun-2024

 12 min de lecture

 ](https://brightdata.fr/blog/donnees-web/user-agent-selenium)

 [ ![Requests User Agent Guide blog image](https://media.brightdata.fr/2024/06/Requests-User-Agent-Guide_-Setting-and-Changing.svg) ](https://brightdata.fr/blog/donnees-web/requests-user-agent "Guide des agents utilisateurs Python Requests : configuration et modification")

 [Données Web



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

Antonello Zanini

Technical Writer





### Guide des agents utilisateurs Python Requests : configuration et modification

Arrêtez de vous faire bloquer par les systèmes anti-bots ! Ce didacticiel vous apprend à définir et à provoquer la rotation de l’en-tête User-Agent dans Python Requests pour un web scraping sûr et efficace.



 04-Jun-2024

 11 min de lecture

 ](https://brightdata.fr/blog/donnees-web/requests-user-agent)
