Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Headers

Baseline Large disponibilité

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis mars 2017.

Note : Cette fonctionnalité est disponible via les Web Workers.

L'interface Headers de l'API Fetch vous permet d'effectuer diverses actions sur les en-têtes de requête et de réponse HTTP. Ces actions incluent la récupération, la configuration, l'ajout et la suppression d'en-têtes de la liste des en-têtes de requêtes.

Vous pouvez récupérer un objet Headers avec les propriétés Request.headers et Response.headers, et créer un nouvel objet Headers en utilisant le constructeur Headers(). Par rapport à l'utilisation d'objets simples, l'utilisation d'objets Headers pour envoyer des requêtes offre une certaine validation supplémentaire des entrées. Par exemple, elle normalise les noms d'en-tête en minuscules, supprime les espaces blancs en début et en fin des valeurs d'en-tête, et empêche certains en-têtes d'être définis.

Note : Vous pouvez en savoir plus sur les en-têtes disponibles en lisant notre référence sur les en-têtes HTTP.

Description

Un objet Headers a une liste d'en-têtes associée, qui est initialement vide et composée de zéro ou plusieurs paires nom/valeur. Vous pouvez ajouter à cette liste en utilisant des méthodes comme append() (voir les exemples.) Dans toutes les méthodes de cette interface, les noms d'en-tête sont comparés par séquence d'octets insensible à la casse.

Un objet implémentant Headers peut être utilisé directement dans une structure for...of, au lieu de entries() : for (const p of myHeaders) est équivalent à for (const p of myHeaders.entries()).

Restrictions de modification

Certains objets Headers ont des restrictions quant à savoir si les méthodes set(), delete(), et append() peuvent modifier l'en-tête. Les restrictions de modification sont définies en fonction de la manière dont l'objet Headers est créé.

Toutes les méthodes Headers (en-têtes) lèveront une exception TypeError si vous essayez de passer une référence à un nom qui n'est pas un nom d'en-tête HTTP valide (angl.). Les opérations de mutation lèveront un TypeError si l'en-tête est immuable. Dans tout autre cas d'échec, elles échouent silencieusement.

Constructeur

Headers()

Crée un nouvel objet Headers.

Méthodes d'instance

Headers.append()

Ajoute une nouvelle valeur à un en-tête existant dans un objet Headers, ou ajoute l'en-tête s'il n'existe pas déjà.

Headers.delete()

Supprime un en-tête dans un objet Headers.

Headers.entries()

Retourne un iterator permettant d'accéder à toutes les paires clé/valeur contenues dans cet objet.

Headers.forEach()

Exécute une fonction fournie une fois pour chaque élément du tableau.

Headers.get()

Retourne une chaîne de caractères (String) de toutes les valeurs d'un en-tête dans un objet Headers pour un nom donné.

Headers.getSetCookie()

Retourne un tableau contenant les valeurs de tous les en-têtes Set-Cookie associés à une réponse.

Headers.has()

Retourne un booléen indiquant si un objet Headers contient un certain en-tête.

Headers.keys()

Retourne un iterator permettant de parcourir toutes les clés des paires clé/valeur contenues dans cet objet.

Headers.set()

Définit une nouvelle valeur pour un en-tête existant dans un objet Headers, ou ajoute l'en-tête s'il n'existe pas déjà.

Headers.values()

Retourne un iterator permettant de parcourir toutes les valeurs des paires clé/valeur contenues dans cet objet.

Note : Pour être clair, la différence entre Headers.set() et Headers.append() est que si l'en-tête défini existe et accepte plusieurs valeurs, Headers.set() va remplacer la valeur existante par la nouvelle, tandis que Headers.append() va ajouter la nouvelle valeur à la fin des autres valeurs. Voir leurs pages dédiées pour des exemples de code.

Note : Lorsque les valeurs d'en-tête sont itérées, elles sont automatiquement triées par ordre alphabétique et les valeurs des noms d'en-tête en double sont combinées.

Exemples

Dans le fragment de code suivant, nous créons un nouvel Header en utilisant le contructeur Headers(), ajoutons un nouvel header à ce dernier en utilisant append(), puis retournons la valeur du header en utilisant get() :

js
const monEnTete = new Headers();

monEnTete.append("Content-Type", "text/xml");
monEnTete.get("Content-Type"); // doit retourner 'text/xml'

La même chose peut être accomplie en passant un littéral d'objet ou un tableau de tableaux au constructeur.

js
let mesEnTetes = new Headers({
  "Content-Type": "text/xml",
});

// ou, en utilisant un tableau de tableaux
mesEnTetes = new Headers([["Content-Type", "text/xml"]]);

mesEnTetes.get("Content-Type"); // doit retourner 'text/xml'

Spécifications

Spécification
Fetch
# headers-class

Compatibilité des navigateurs

Voir aussi