headers

headers est une fonction asynchrone qui vous permet de lire les en-têtes de requête HTTP entrants depuis un Composant Serveur.

import { headers } from 'next/headers'

export default async function Page() {
  const headersList = await headers()
  const userAgent = headersList.get('user-agent')
}

Référence

Paramètres

headers ne prend aucun paramètre.

Valeur retournée

headers retourne un objet Web Headers en lecture seule.

  • Headers.entries(): Retourne un itérateur permettant de parcourir toutes les paires clé/valeur contenues dans cet objet.
  • Headers.forEach(): Exécute une fonction fournie une fois pour chaque paire clé/valeur dans cet objet Headers.
  • Headers.get(): Retourne une séquence String de toutes les valeurs d'un en-tête dans un objet Headers avec un nom donné.
  • Headers.has(): Retourne un booléen indiquant si un objet Headers contient un certain en-tête.
  • Headers.keys(): Retourne un itérateur permettant de parcourir toutes les clés des paires clé/valeur contenues dans cet objet.
  • Headers.values(): Retourne un itérateur permettant de parcourir toutes les valeurs des paires clé/valeur contenues dans cet objet.

Bon à savoir

  • headers est une fonction asynchrone qui retourne une promesse. Vous devez utiliser async/await ou la fonction use de React.
    • Dans la version 14 et antérieures, headers était une fonction synchrone. Pour assurer la compatibilité ascendante, vous pouvez toujours y accéder de manière synchrone dans Next.js 15, mais ce comportement sera déprécié à l'avenir.
  • Comme headers est en lecture seule, vous ne pouvez pas set ou delete les en-têtes de requête sortants.
  • headers est une API Dynamique dont les valeurs retournées ne peuvent pas être connues à l'avance. Son utilisation entraînera un rendu dynamique pour la route.

Exemples

Utilisation de l'en-tête Authorization

app/page.js
import { headers } from 'next/headers'

export default async function Page() {
  const authorization = (await headers()).get('authorization')
  const res = await fetch('...', {
    headers: { authorization }, // Transmet l'en-tête d'autorisation
  })
  const user = await res.json()

  return <h1>{user.name}</h1>
}

Historique des versions

VersionModifications
v15.0.0-RCheaders est désormais une fonction asynchrone. Un codemod est disponible.
v13.0.0Introduction de headers.

On this page