headers() din next/headers – Inspectarea antetelor HTTP pe server în Next.js

Oferă acces de doar-citire la toate antetele HTTP primite de server de la clientul web.

Sintaxă
import { headers } from 'next/headers';

const headerList = await headers();
const ip = headerList.get('x-forwarded-for');
const userAgent = headerList.get('user-agent');

Ce face headers() din next/headers - Inspectarea antetelor HTTP pe server

Funcția headers() permite inspectarea antetelor cererii direct din Server Components.

Este utilă pentru detectarea limbii preferate a browserului (`accept-language`), a dispozitivului (`user-agent`), a adresei IP reale a vizitatorului din spatele unui proxy (`x-forwarded-for`) sau a antetelor personalizate injectate de un middleware.

La fel ca funcția `cookies()`, apelarea `headers()` trece automat randarea paginii în modul dinamic (SSR).

Exemple

Exemplul 1: Identificarea țării și a adresei IP a vizitatorului într-un Server Component

Citește antetele de geolocație trimise de CDN sau proxy.

import { headers } from 'next/headers';

export default async function PaginaStart() {
  const antete = await headers();
  const ipClient = antete.get('x-forwarded-for') || '127.0.0.1';
  const tara = antete.get('cf-ipcountry') || 'RO';

  return (
    <div>
      <p>IP-ul tău: {ipClient}</p>
      <p>Locație detectată: {tara}</p>
    </div>
  );
}

Ieșire în terminal

Informațiile de rețea sunt afișate dinamic utilizatorului.

Greșeli frecvente

  • Încercarea de a modifica antetele de răspuns prin `headers()`; această funcție este exclusiv pentru citirea antetelor de cerere (pentru setarea antetelor de răspuns se folosește middleware.ts sau next.config.js).

Comenzi înrudite