HTTP 308 Permanent Redirect

Un reindirizzamento permanente con regole rigorose: l'URL si è spostato definitivamente e la richiesta deve essere ripetuta invariata.

Cosa significa HTTP 308

HTTP 308 Permanent Redirect è il fratello che preserva il metodo del 301. La risorsa si è spostata permanentemente all'URL in Location, e i client devono ripetere lì la richiesta senza cambiare il metodo o perdere il corpo.

Conta soprattutto per le API: se un endpoint che accetta POST o PUT si sposta permanentemente, un 301 potrebbe far sì che vecchi client riprovino silenziosamente con GET perdendo il payload. Un 308 mantiene intatta la scrittura.

Cause comuni delle risposte 308

  • Un endpoint API che accetta scritture si è spostato permanentemente a un nuovo percorso o dominio.
  • Canonicalizzazione a livello di infrastruttura (ad esempio Cloudflare o un load balancer) configurata per preservare i metodi.
  • Un framework che usa 308 di default per la normalizzazione dello slash finale (Next.js, alcune CDN).

Buone pratiche per gli sviluppatori

  • Scegli 308 rispetto a 301 ogni volta che richieste non-GET possono raggiungere il vecchio URL.
  • Come per il 301, reindirizza in un solo passaggio e mantieni il reindirizzamento attivo a lungo termine.
  • Verifica che i vecchi client API gestiscano il 308 — librerie HTTP molto vecchie potrebbero non seguirlo automaticamente.

Esempio di risposta

HTTP/1.1 308 Permanent Redirect
Location: https://api.example.com/v2/upload

Impatto SEO

Per i motori di ricerca un 308 equivale a un 301: uno spostamento permanente che trasferisce i segnali di indicizzazione e posizionamento all'URL di destinazione. Scegli tra i due in base ai client, non alla SEO.

FAQ

308 equivale a 301 per la SEO?

Sì — Google tratta entrambi come uno spostamento permanente e trasferisce i segnali al nuovo URL.

Quando è richiesto 308 invece di 301?

Quando le richieste reindirizzate possono essere POST, PUT, PATCH o DELETE e il metodo e il corpo devono essere preservati.

Tutti i browser supportano il 308?

Tutti i browser moderni lo fanno. Solo client molto vecchi (ad esempio IE dell'era Windows 7, librerie HTTP antiche) avevano lacune.