Qual è la lunghezza massima di un URL in diversi browser? Differisce da un browser all'altro?
Lo impone il protocollo HTTP?
Se tieni gli URL sotto i 2000 caratteri, funzioneranno praticamente in qualsiasi combinazione di software client e server. Se ti rivolgi a particolari browser, vedi sotto per maggiori dettagli sui limiti specifici.
RFC 2616 (Hypertext Transfer Protocol HTTP/1.1) la sezione 3.2.1 dice Il protocollo HTTP non pone alcun limite a priori sulla lunghezza di un URI. I server DEVONO essere in grado di gestire l'URI di qualsiasi risorsa che servono, e DOVREBBERO essere in grado di gestire URI di lunghezza illimitata se forniscono moduli basati su GET che potrebbero generare tali URI. Un server DOVREBBE restituire lo stato 414 (Request-URI Too Long) se un URI è più lungo di quanto il server possa gestire (vedi sezione 10.4.15).
Questo RFC è stato superato da RFC7230 che è un aggiornamento della specifica HTTP/1.1. Contiene un linguaggio simile, ma continua anche a suggerire questo: Varie limitazioni ad hoc sulla lunghezza della linea di richiesta si trovano nella pratica. È RACCOMANDATO che tutti i mittenti e destinatari HTTP supportino, come minimo, lunghezze di request-line di 8000 ottetti.
...e la realtà
Questo è ciò che dicono gli standard. Per la realtà, vedi questa ricerca su boutell.com per vedere cosa supportano le implementazioni dei singoli browser e server. Vale la pena leggerlo, ma il riassunto esecutivo è: Gli URL estremamente lunghi sono di solito un errore. URLs oltre i 2.000 caratteri non funzioneranno nel web più popolare browser. Non usateli se intendete che il tuo sito funzioni per la maggior parte degli utenti di Internet. (Nota: questa è una citazione da un articolo scritto nel 2006, ma nel 2015 l'uso decrescente di IE significa che gli URL più lunghi funzionano per la maggioranza. Tuttavia, IE ha ancora la limitazione...)
Internet Explorer'limitazioni...
La lunghezza massima degli URL di IE8 è di 2083 caratteri, e sembra che IE9 abbia un limite simile5. Ho testato IE10 e la barra degli indirizzi accetta solo 2083 caratteri. È possibile cliccare un URL più lungo di questo, ma la barra degli indirizzi mostrerà ancora solo 2083 caratteri di questo link. C'è un bel articolo sul blog di IE Internals che approfondisce alcuni dei retroscena di questo. Ci sono rapporti misti in cui IE11 supporta URL più lunghi - vedi i commenti qui sotto. Dato che alcune persone riportano problemi, il consiglio generale è ancora valido.
Ai motori di ricerca piacciono gli URL < 2048 caratteri...
Siate consapevoli che il protocollo sitemaps, che permette ad un sito di informare i motori di ricerca sulle pagine disponibili, ha un limite di 2048 caratteri in un URL. Se hai intenzione di utilizzare le sitemaps, un limite è stato deciso per te! (vedi Calin-Andrei Burloiu'risposta qui sotto) C'è anche una ricerca del 2010 sulla lunghezza massima dell'URL che i motori di ricerca scansionano e indicizzano. Hanno trovato che il limite è di 2047 caratteri, che sembra alleato alle specifiche del protocollo sitemap. Tuttavia, hanno anche trovato che lo strumento SERP di Google non sarebbe in grado di gestire gli URL più lunghi di 1855 caratteri.
Ulteriori browser roundup
Ho testato quanto segue contro un server Apache 2.4 configurato con un LimitRequestLine e LimitRequestFieldSize molto grandi.
Browser Address bar document.location
or anchor tag
------------------------------------------
Chrome 32779 >64k
Android 8192 >64k
Firefox >64k >64k
Safari >64k >64k
IE11 2047 5120
Edge 16 2047 10240
Vedi anche questa risposta di Matas Vaitkevicius qui sotto.
Questa è una domanda popolare, e poiché la ricerca originale ha ~12 anni cercherò di tenerla aggiornata: A partire da Sep 2018, il consiglio è ancora valido. Anche se IE11 può forse accettare URL più lunghi, l'ubiquità delle vecchie installazioni di IE più le limitazioni del motore di ricerca significano che stare sotto i 2000 caratteri è la migliore politica generale.
WWW FAQs: Qual è la lunghezza massima di un URL? ha la sua risposta basata su test empirici e ricerche. La risposta breve è che andare oltre i 2048 caratteri rende Internet Explorer infelice e quindi questo è il limite che dovresti usare. Vedere la pagina per una risposta lunga.
L'URI RFC (di cui gli URL sono un sottoinsieme) non definisce una lunghezza massima, tuttavia, raccomanda che la parte hostname dell'URI (se applicabile) non superi i 255 caratteri di lunghezza:
I produttori di URI dovrebbero usare nomi che conformi alla sintassi DNS, anche quando l'uso del DNS non è immediatamente apparente, e dovrebbero limitare questi nomi a non più di 255 caratteri in lunghezza.
Come notato in altri post però, alcuni browser hanno una limitazione pratica sulla lunghezza di un URL.