headers

headers es una función asíncrona que permite leer las cabeceras (headers) de solicitudes HTTP entrantes desde un Componente de Servidor.

import { headers } from 'next/headers'

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

Referencia

Parámetros

headers no recibe ningún parámetro.

Retorno

headers retorna un objeto Web Headers de solo lectura.

  • Headers.entries(): Retorna un iterador que permite recorrer todos los pares clave/valor contenidos en este objeto.
  • Headers.forEach(): Ejecuta una función proporcionada una vez por cada par clave/valor en este objeto Headers.
  • Headers.get(): Retorna una secuencia String con todos los valores de una cabecera específica dentro del objeto Headers.
  • Headers.has(): Retorna un booleano que indica si el objeto Headers contiene una cabecera específica.
  • Headers.keys(): Retorna un iterador que permite recorrer todas las claves de los pares clave/valor contenidos en este objeto.
  • Headers.values(): Retorna un iterador que permite recorrer todos los valores de los pares clave/valor contenidos en este objeto.

Bueno saber

  • headers es una función asíncrona que retorna una promesa. Debes usar async/await o la función use de React.
    • En la versión 14 y anteriores, headers era una función síncrona. Para mantener compatibilidad, aún puedes acceder a ella de forma síncrona en Next.js 15, pero este comportamiento quedará obsoleto en el futuro.
  • Como headers es de solo lectura, no puedes usar set o delete en las cabeceras de solicitud salientes.
  • headers es una API Dinámica cuyos valores retornados no pueden conocerse de antemano. Su uso hará que una ruta utilice renderizado dinámico.

Ejemplos

Usando la cabecera 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 }, // Reenviar la cabecera de autorización
  })
  const user = await res.json()

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

Historial de versiones

VersiónCambios
v15.0.0-RCheaders ahora es una función asíncrona. Hay disponible un codemod.
v13.0.0Se introdujo headers.

On this page