Kurze Antwort - De-facto-Limit von 2000 Zeichen
Wenn Sie URLs unter 2000 Zeichen halten, funktionieren sie in praktisch jeder Kombination von Client- und Serversoftware.
Wenn Sie auf bestimmte Browser abzielen, finden Sie unten weitere Einzelheiten zu bestimmten Grenzwerten.
Längere Antwort - zuerst die Standards ...
In Abschnitt 3.2.1 von RFC 2616 (Hypertext Transfer Protocol HTTP / 1.1) heißt es
Das HTTP-Protokoll begrenzt die Länge eines URI nicht von vornherein. Server MÜSSEN in der Lage sein, die URI aller von ihnen bereitgestellten Ressourcen zu verarbeiten, und MÜSSEN in der Lage sein, URIs von unbegrenzter Länge zu verarbeiten, wenn sie GET-basierte Formulare bereitstellen, die solche URIs generieren könnten. Ein Server sollte den Status 414 (Request-URI Too Long) zurückgeben, wenn ein URI länger ist, als der Server verarbeiten kann (siehe Abschnitt 10.4.15).
Dieser RFC wurde von veraltet RFC7230 , eine Aktualisierung der HTTP / 1.1-Spezifikation, . Es enthält eine ähnliche Sprache, schlägt aber auch Folgendes vor:
In der Praxis gibt es verschiedene Ad-hoc-Einschränkungen für die Länge der Anforderungszeile. Es wird EMPFOHLEN, dass alle HTTP-Absender und -Empfänger mindestens Anforderungszeilenlängen von 8000 Oktetten unterstützen.
... und die Realität
Das sagen die Standards . In Wirklichkeit gab es auf boutell.com einen Artikel (Link führt zur Sicherung des Internetarchivs), in dem erläutert wurde, welche einzelnen Browser- und Serverimplementierungen unterstützt werden. Die Zusammenfassung lautet:
Extrem lange URLs sind normalerweise ein Fehler. URLs mit mehr als 2.000 Zeichen funktionieren in den gängigsten Webbrowsern nicht. Verwenden Sie sie nicht, wenn Sie beabsichtigen, dass Ihre Website für die Mehrheit der Internetnutzer funktioniert.
(Hinweis: Dies ist ein Zitat aus einem Artikel aus dem Jahr 2006 , aber im Jahr 2015 bedeutet die rückläufige Nutzung des IE, dass längere URLs erforderlich sind tut Arbeit für die Mehrheit jedoch IE hat immer noch die Einschränkung ....)
Einschränkungen von Internet Explorer ...
Die maximale URL-Länge von IE8 beträgt 2083 Zeichen , und anscheinend hat IE9 eine ähnliche Grenze .
Ich habe IE10 getestet und die Adressleiste akzeptiert nur 2083 Zeichen. Sie können klicken eine URL die länger als diese ist. In der Adressleiste werden jedoch nur 2083 Zeichen dieses Links angezeigt.
Es gibt eine schöne Zusammenfassung im IE Internals-Blog die einige Hintergrundinformationen dazu enthält.
Es gibt gemischte Berichte IE11 unterstützt längere URLs - siehe Kommentare unten. Angesichts der Tatsache, dass einige Leute Probleme melden, bleibt der allgemeine Rat bestehen.
Suchmaschinen wie URLs <2048 Zeichen ...
Beachten Sie, dass das Sitemaps-Protokoll , mit dem eine Site Suchmaschinen über verfügbare Seiten informieren kann, eine URL mit maximal 2048 Zeichen enthält. Wenn Sie Sitemaps verwenden möchten, wurde ein Limit für Sie festgelegt! (siehe Calin-Andrei Burloius Antwort unten)
Es gibt auch einige Untersuchungen aus dem Jahr 2010 zur maximalen URL-Länge, die Suchmaschinen crawlen und indizieren . Sie fanden heraus, dass das Limit 2047 Zeichen betrug, was mit der Sitemap-Protokollspezifikation verwandt zu sein scheint. Sie stellten jedoch auch fest, dass das Google SERP- Tool URLs nicht länger als 1855 Zeichen verarbeiten würde.
CDNs haben Grenzen
CDNs begrenzen auch die URI-Länge und geben a zurück, 414 Too long request
wenn diese Grenzen erreicht sind, zum Beispiel:
(Dank an timrs2998 für die Bereitstellung dieser Informationen in den Kommentaren)
Zusätzliche Browser-Zusammenfassung
Ich habe Folgendes gegen einen Apache 2.4-Server getestet, der mit einer sehr großen LimitRequestLine und LimitRequestFieldSize konfiguriert ist .
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
Siehe auch diese Antwort von Matas Vaitkevicius unten.
Sind diese Informationen aktuell?
Dies ist eine beliebte Frage, und da die ursprüngliche Forschung ~ 12 Jahre alt ist, werde ich versuchen, sie auf dem neuesten Stand zu halten: Ab Januar 2020 bleibt der Rat bestehen. Auch wenn IE11 möglicherweise längere URLs akzeptiert, ist die Allgegenwart älterer IE-Installationen sowie die Einschränkungen der Suchmaschine die beste allgemeine Richtlinie, um unter 2000 Zeichen zu bleiben.