Risposta breve - limite di fatto di 2000 caratteri
Se mantieni gli URL con meno di 2000 caratteri, funzioneranno praticamente in qualsiasi combinazione di software client e server.
Se stai prendendo di mira determinati browser, vedi sotto per maggiori dettagli limiti specifici.
Risposta più lunga: in primo luogo, gli standard ...
Nella sezione 3.2.1 di RFC 2616 (Hypertext Transfer Protocol HTTP / 1.1)
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 DOVREBBE 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 quello che il server è in grado di gestire (vedere la sezione 10.4.15).
Quel RFC è stato obsoleto da RFC7230, che è un aggiornamento della specifica HTTP / 1.1. Contiene un linguaggio simile, ma continua anche a suggerire questo:
Nella pratica si trovano varie limitazioni ad hoc sulla lunghezza della linea di richiesta. È RACCOMANDATO che tutti i mittenti e i destinatari HTTP supportino almeno una lunghezza della riga di richiesta di 8000 ottetti.
... e la realtà
Questo è ciò che dicono gli standard . Per la realtà , c'era un articolo su boutell.com (il link va al backup di Internet Archive) che parlava delle implementazioni di singoli browser e server. La sintesi è:
Gli URL estremamente lunghi di solito sono un errore. Gli URL di oltre 2.000 caratteri non funzioneranno nei browser Web più diffusi. Non utilizzarli se intendi 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 in calo i mezzi di utilizzo di IE che gli URL più lunghi fanno il lavoro per la maggior parte, tuttavia, IE ha ancora la limitazione ....)
Limitazioni di Internet Explorer ...
La lunghezza massima dell'URL di IE8 è di 2083 caratteri e sembra che IE9 abbia un limite simile .
Ho testato IE10 e la barra degli indirizzi accetta solo 2083 caratteri. Puoi fare clic su un URL più lungo di questo, ma la barra degli indirizzi mostrerà comunque solo 2083 caratteri di questo link.
C'è un bel commento sul blog di IE Internals che si occupa di alcuni retroscena di questo.
Esistono report misti IE11 supporta URL più lunghi - vedere i commenti di seguito. Dato che alcune persone segnalano problemi, il consiglio generale rimane valido.
Motori di ricerca come URL <2048 caratteri ...
Tieni presente che il protocollo Sitemaps , che consente a un sito di informare i motori di ricerca sulle pagine disponibili, ha un limite di 2048 caratteri in un URL. Se intendi utilizzare le Sitemap, è stato deciso un limite per te! (vedi la risposta di Calin-Andrei Burloiu di seguito)
C'è anche qualche ricerca dal 2010 sulla lunghezza massima dell'URL che i motori di ricerca eseguiranno la scansione e l'indicizzazione . Hanno scoperto che il limite era di 2047 caratteri, che sembra alleato alle specifiche del protocollo Sitemap. Tuttavia, hanno anche scoperto che lo strumento SERP di Google non sarebbe in grado di gestire URL più lunghi di 1855 caratteri.
I CDN hanno dei limiti
I CDN impongono anche limiti sulla lunghezza dell'URI e restituiranno un valore 414 Too long request
quando vengono raggiunti questi limiti, ad esempio:
(credito a timrs2998 per aver fornito tali informazioni nei commenti)
Riassunto del browser aggiuntivo
Ho testato quanto segue su 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 di seguito.
Queste informazioni sono aggiornate?
Questa è una domanda popolare, e poiché la ricerca originale ha ~ 12 anni proverò a tenerlo aggiornato: a partire da gennaio 2020 , il consiglio è ancora valido. Anche se IE11 potrebbe accettare URL più lunghi, l'ubiquità delle vecchie installazioni IE oltre alle limitazioni del motore di ricerca significa che rimanere sotto i 2000 caratteri è la migliore politica generale.