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
cookies() din next/headers - Gestionarea cookie-urilor pe server: Permite citirea, setarea și ștergerea cookie-urilor HTTP direct din componentele și acțiunile de server.middleware.ts - Interceptarea cererilor la nivel de rețea (Edge Middleware): Rulează cod înainte ca o cerere să ajungă la pagină, perfect pentru autentificare, redirecționări de geolocație și securitate.app/api/route.ts - Endpoint-uri API backend (Route Handlers): Creează endpoint-uri REST/HTTP native executate pe server ce răspund la metodele standard GET, POST, PUT, DELETE, PATCH.