300 Multiple Choices significa che la risorsa di destinazione ha più di una rappresentazione, ciascuna con il proprio URL, e che il server vuole che sia l’utente o lo user agent a scegliere. Esempi tipici sono lo stesso documento in lingue o formati di file diversi. Il corpo dovrebbe elencare le opzioni con i relativi link.
Se il server ha un’opzione preferita, dovrebbe inviarne l’URL in un’intestazione Location. La RFC 9110 permette agli user agent di seguirla automaticamente, ma i browser non lo fanno: lo standard Fetch segue solo 301, 302, 303, 307 e 308. Gli utenti vedono invece il corpo della risposta.
Una risposta 300 è memorizzabile in cache in modo euristico. Poiché la negoziazione automatica è poco affidabile, la maggior parte dei siti sceglie da sé una variante e la serve direttamente oppure usa un normale reindirizzamento.
Esempio di risposta
HTTP/1.1 300 Multiple Choices
Date: Fri, 06 Nov 2026 10:15:32 GMT
Location: https://www.example.com/guide.en.html
Content-Type: text/html; charset=utf-8
Content-Length: 102
<ul>
<li><a href="/guide.en.html">English</a></li>
<li><a href="/guide.de.html">Deutsch</a></li>
</ul> SEO e verifica dei redirect
Il 300 è raro e poco supportato dai crawler, quindi non affidarti a questo codice per indirizzare visitatori o bot. Per servire lingue diverse, usa URL separati collegati da annotazioni hreflang. Se reindirizzi i visitatori in base alla lingua o al dispositivo, usa 302 o 307 e mantieni una versione predefinita raggiungibile dai crawler. I browser si fermano a un 300, quindi consideralo la fine della catena quando analizzi i redirect.
Cause comuni e casi d’uso
- Il modulo
mod_spelingdi Apache trova più file che potrebbero corrispondere a un URL scritto male e li elenca. - La negoziazione dei contenuti elenca le varianti di lingua o di formato disponibili invece di sceglierne una.
- Un’API offre un documento in più formati e lascia scegliere al client.