303 See Other indica al client di recuperare con GET (o HEAD) una risorsa diversa, indicata nell’intestazione Location. Non afferma che la risorsa originale sia stata spostata: rimanda a una risorsa separata che contiene la risposta.
Il suo uso principale è il pattern Post/Redirect/Get. Dopo l’invio di un modulo con POST, il server risponde 303 con l’URL di una pagina di conferma, e il browser carica quella pagina con GET. Così, ricaricandola o premendo Indietro, il modulo non viene inviato di nuovo. Quando seguono un 303, i browser trasformano in GET qualsiasi metodo tranne HEAD ed eliminano il corpo della richiesta.
Una risposta 303 non è memorizzabile in cache per impostazione predefinita. Un 303 in risposta a un GET può anche indicare che il server non ha una rappresentazione dell’oggetto richiesto, ma lo descrive a un altro URL: è uno schema usato nei Linked Data.
Esempio di risposta
HTTP/1.1 303 See Other
Date: Fri, 06 Nov 2026 10:15:32 GMT
Location: /orders/8412/confirmation
Content-Length: 0 SEO e verifica dei redirect
Google tratta il 303 come un reindirizzamento temporaneo: l’URL originale di solito resta indicizzato e la destinazione riceve solo un segnale canonico debole. È coerente con il suo scopo, perché le destinazioni di un 303 sono di solito pagine di esito o di conferma, non contenuti che devono posizionarsi. Non usare il 303 per spostare pagine in modo permanente: usa 301 o 308. Una verifica dei redirect con il metodo impostato su POST mostra come la richiesta diventi un GET in corrispondenza di un salto 303.
Cause comuni e casi d’uso
- Post/Redirect/Get: dopo un
POST, il gestore del modulo reindirizza a una pagina di ringraziamento o di riepilogo dell’ordine. - Un’API accetta un job e indirizza il client a una risorsa separata che contiene il risultato.
- Linked Data: un URI che identifica un oggetto del mondo reale reindirizza a un documento che lo descrive.