Headers
=======

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. Un objet `Headers` a une liste `Headers` associée qui est vide lors de l'initialisation et qui est constituée de zéro ou plusieurs paires de noms et de valeurs. Vous pouvez en ajouter via les méthodes comme`append()` (en-US) (voir la section Exemples.) Dans toutes les méthodes de cette interface, les noms des `Headers` sont reliés à une séquence d'octets sensible à la case.

Pour des raisons de sécurité, les `Headers` ci-dessous peuvent être controlés uniquement par l'User Agent : forbidden header names et forbidden response header names.

Un objet `Headers` a aussi une garde associée, qui prend la valeur `immutable`, `request`, `request-no-cors`, `reponse`, or `none`. Cela affecte si les méthodes `set()` (en-US), `delete()` (en-US), et `append()` (en-US) vont modifier le `Header`. Pour plus d'informations voir Guard.

Vous pouvez récuperer un objet `Header` via les propriétés `Request.headers` (en-US) et `Response.headers` (en-US) et créer un nouvel objet `Header` en utilisant le constructeur `Headers.Headers()` (en-US).

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

**Note :** Vous pouvez trouver plus d'informations à propos des Headers disponibles en lisant la page suivante : HTTP headers.

Constructeur
------------

`Headers()` (en-US)

Crée un nouvel objet `Headers`.

Méthodes
--------

`Headers.append()` (en-US)

Ajoute une nouvelle valeur à un Header existant dans un objet `Headers`, ou ajoute le header s'il n'existe pas déjà.

`Headers.delete()` (en-US)

Supprime un header dans un objet `Headers`.

`Headers.entries()` (en-US)

Retourne un `iterator` permettant d'acceder à toutes les paires clef/valeur contenue dans cet objet.

`Headers.forEach()` (en-US)

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

`Headers.get()` (en-US)

Retourne une séquence `ByteString` de toutes les valeurs d'un Header dans un objet `Headers` avec un nom donné.

`Headers.has()` (en-US)

Retourne un booléen indiquant si un objet `Headers` contient un certain header.

`Headers.keys()` (en-US)

Retourne un `iterator` permettant de parcourir toutes les clefs des paires clef/valeur contenues dans cet objet.

`Headers.set()` (en-US)

Définti une nouvelle valeur pour un header existant dans un objet `Headers`, ou ajoute le header s'il n'existe pas déjà.

`Headers.values()` (en-US)

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


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

**Note :** Toutes les méthodes Headers vont retourner `TypeError` si vous essayez de passer dans une réfférenceun nom qui n'est pas un nom de Header HTTP valide. Les opérations de mutation vont retourner `TypeError` si le header a un Guard immuable. Dans tous les autres cas, les erreurs sont silencieuses.

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

### Méthodes obsolètes

`Headers.getAll()` (en-US)

Utilisée pour retourner un array de toutes les valeurs d'un header dans un objet `Headers` avec un nom donné. Cette méthode est maintenant supprimée des standards, et `Headers.get()` (en-US) retourne maintenant toutes les valeurs d'un nom donné au lieu du premier seulement.

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
var monHeader = new Headers();

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


La même chose peut être accomplie en passant par un array d'array un littéral d'objet au constructeur.


```js
var mesHeaders = new Headers({
  "Content-Type": "text/xml",
});

// ou, en utilisant un array d'array
mesHeaders = new Headers([["Content-Type", "text/xml"]]);

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

Spécifications
--------------

| Specification |
| --- |
| Fetch Standard # headers-class |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* API ServiceWorker (en-US)
* HTTP access control (CORS)
* HTTP