headers

headers — это асинхронная функция, которая позволяет читать заголовки входящего HTTP-запроса в серверных компонентах.

import { headers } from 'next/headers'

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

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

Справочник

Параметры

headers не принимает параметров.

Возвращаемое значение

headers возвращает только для чтения объект Web Headers.

  • Headers.entries(): Возвращает итератор для перебора всех пар ключ/значение в объекте.
  • Headers.forEach(): Выполняет переданную функцию один раз для каждой пары ключ/значение в объекте Headers.
  • Headers.get(): Возвращает строку со всеми значениями заголовка с указанным именем.
  • Headers.has(): Возвращает булево значение, указывающее, содержит ли объект Headers указанный заголовок.
  • Headers.keys(): Возвращает итератор для перебора всех ключей в объекте.
  • Headers.values(): Возвращает итератор для перебора всех значений в объекте.

Полезно знать

  • headers — это асинхронная функция, возвращающая промис. Необходимо использовать async/await или функцию use из React.
    • В версии 14 и ранее headers была синхронной функцией. Для обратной совместимости в Next.js 15 её всё ещё можно использовать синхронно, но это поведение будет устаревшим в будущем.
  • Поскольку headers доступен только для чтения, нельзя использовать set или delete для исходящих заголовков запроса.
  • headers — это динамический API, возвращаемые значения которого невозможно определить заранее. Его использование приведёт к динамическому рендерингу маршрута.

Примеры

Использование заголовка 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 }, // Передача заголовка authorization
  })
  const user = await res.json()

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

История версий

ВерсияИзменения
v15.0.0-RCheaders стала асинхронной функцией. Доступен кодмод.
v13.0.0Добавлена функция headers.