FWIW, für Windows - Benutzer, Server - Pfade 250 Zeichen überschreiten kann dazu führen , Trauer , wenn URLs, zum Beispiel finden Sie HttpContext.Current.Server.MapPath für lange Dateinamen nicht bei forums.asp.net . Fazit: Wenn eine Einschränkung Sie nicht bekommen, ein anderer kann .
Darf ich fragen, warum mussten Sie das wissen? Dh was ist der Anwendungsfall für eine lange URL?
o0 '.
17
@Lohoris: Wenn ein Formular getanstelle von verwendet post, werden die eingegebenen Informationen durch Lesezeichen für die Seite erfasst, die vom ausgefüllten Formular erreicht wird. In einigen Fällen kann das schlecht sein, in anderen Fällen kann es nützlich sein. Damit dies funktioniert, muss der Browser jedoch in der Lage sein, eine URL zu verarbeiten, die alle Informationen enthält.
Supercat
4
@Lohoris Beim Schreiben von Seiten zum Generieren von Berichten haben wir ein Kriterienformular verwendet. Bei einigen Berichten ist es hilfreich, die URL per E-Mail an jemanden mit den integrierten Kriterien senden zu können. Abhängig von dem Bericht, den wir manchmal verwenden müssen, werden postdie Kriterien abgeschnitten. Nur ein weiterer Anwendungsfall.
Buzzsawddog
Antworten:
4956
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 ....)
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 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 requestwenn diese Grenzen erreicht sind, zum Beispiel:
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.
Ursprüngliche Frage: "Was ist die maximale Länge einer URL in verschiedenen Browsern ? " Dies beantwortet nicht die Frage, es gibt nur für IE. Menschen erstellen Websites für verschiedene Zwecke, zum Beispiel interne Tools, auf die der IE NIEMALS zugreifen kann.
Skeets
13
2016 konnte ich in Chrome eine URL mit 260300 ASCII-Zeichen mit dem Befehl osx open aus einem einfachen Skript öffnen und bestätigen, dass alle Zeichen an den Server übergeben wurden. Die URL im Browser wird auf 32791 Zeichen gekürzt, was mit ... (% E2% 80% A6% E2% 80% A6) endet
Rob Dawson
22
@Paul Dixon Es ist wirklich schön, Leute zu sehen, die bereit sind, bei der Beantwortung von Fragen auf dieser Website alles zu tun. Offensichtlich zeigen die Leute ihre Dankbarkeit mit der aktuellen Upvote-Zahl von 3734, aber ich wollte mich bedanken! :)
Drognisep
170
Die längsten URLs, auf die ich gestoßen bin, sind Daten-URLs
Beispiel-Bild-URL aus Google-Bildergebnissen (11747 Zeichen)
Er spricht über die Tatsache, dass ein Base64-codiertes JPEG technisch gesehen eine URL ist, da es als Daten angegeben wird: *. Obwohl er zu Recht angibt, dass es sich um eine gültige URL handelt, glaube ich nicht, dass dies die Frage war.
Fitblip
54
... oder fügen Sie es einfach in Ihre Adressleiste ein.
Gras Double
108
Das ist eine URI, keine URL.
Mike Jones
65
Da eine Daten-URL das Protokoll "data:" und den Bezeichner enthält, ist alles erforderlich, um diese "Datei" zu lokalisieren (auch wenn das "Dateisystem" der Speicherplatz aller möglichen Dateien ist). Es handelt sich also um eine URL, die auch eine URI ist. (Aber definitiv nicht "keine URL")
MickLH
5
@DoubleGras Google Chrome für Mac erlaubt mir nicht, eine so lange URL in meine Adressleiste
einzufügen
157
WWW-FAQs: Was ist die maximale Länge einer URL? hat eine eigene Antwort, die auf empirischen Tests und Untersuchungen basiert. Die kurze Antwort lautet, dass das Überschreiten von 2048 Zeichen den Internet Explorer unglücklich macht und dies daher die Grenze ist, die Sie verwenden sollten. Auf der Seite finden Sie eine lange Antwort.
<scriptsrc="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script><scripttype="text/javascript">
$(function(){var text ="a";for(var i =0; i < parseInt(@ViewBag.TestLength)-1; i++){
text +="a";}
document.location.href ="http://localhost:50766/Home/ParamTest?x="+ text;});</script>
TEIL 1
Auf Chrome habe ich:
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36
2046
Es explodierte dann mit:
HTTP-Fehler 404.15 - Nicht gefunden Das Anforderungsfiltermodul ist so konfiguriert, dass eine Anforderung abgelehnt wird, bei der die Abfragezeichenfolge zu lang ist.
das hat überhaupt nicht geholfen. Ich entschied mich schließlich, Fiddler zu verwenden, um den Referrer aus dem Header zu entfernen.
static function OnBeforeRequest(oSession: Session) {
if (oSession.url.Contains("localhost:50766")) {
oSession.RequestHeaders.Remove("Referer");
}
Welches hat gut getan.
Chrom: hat 15613 Zeichen. (Ich denke, es ist ein 16K-Limit für IIS)
Und es schlug erneut fehl mit:
<BODY><h2>Bad Request - Request Too Long</h2>
<hr><p>HTTP Error 400. The size of the request headers is too long.</p>
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36
15613
Feuerfuchs:
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0
15708
Internet Explorer 8 schlug mit einem Absturz von iexplore.exe fehl.
Mozilla/5.0 (Linux; Android 5.1; Android SDK built for x86 Build/LKY45) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/39.0.0.0 Mobile Safari/537.36
7377
Internet Explorer 11
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)
4043
Internet Explorer 10
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)
4043
Internet Explorer 9
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
4043
Tatsächlich ist meine Annahme von 512 Zeichen weitgehend falsch ^ _ ^ Danke für den Test. Ich werde mich nie mehr um die Länge der Abfrageparameter kümmern.
Gogol
17
Dies sollte die akzeptierte Antwort sein ... die erste bietet nicht wirklich harte Grenzen für jeden Browser, was in den Fragen gefordert wird.
GrayedFox
1
Könnte auch einen Blick in Safari wert sein. Safari ist der einzige Browser, der keine vom Client generierten Downloads unterstützt. Die Problemumgehungen sind: a) Öffnen eines BLOB-URI (eines kurzen, temporären URI, der auf einen speicherinternen Blob verweist) in einem neuen Fenster, b) Öffnen eines Base-64-codierten Daten-URI in einem neuen Fenster (kann sehr lang sein, unterstützt aber MIME-Eingabe). Details hier: github.com/eligrey/FileSaver.js/issues/12
Mat Gessel
@ Vaitkevicius Weißt du, ob ein Leerzeichen (% 20) als ein Zeichen oder 3 gezählt wird?
Jun711
1
@ Juni hängt davon ab, wo ... F12 drücken und folgend in die Konsole einfügen, console.log("%20".length +" "+decodeURI("%20").length)dies sollte es erklären
Matas Vaitkevicius
96
Es gibt wirklich keine universelle maximale URL-Länge. Die maximale Länge wird nur durch die Unterstützung des Client-Browsers bestimmt, die sehr unterschiedlich ist. Das Limit von 2.083 ist nur in Internet Explorer vorhanden (alle Versionen bis 7.0). Die maximale Länge in Firefox und Safari scheint unbegrenzt zu sein, obwohl Instabilität bei URLs auftritt, die etwa 65.000 Zeichen erreichen. Opera scheint überhaupt keine maximale URL-Länge zu haben und leidet bei extrem langen Längen nicht unter Instabilität.
Wenn die Instabilität bei 65k liegt, ist sie wahrscheinlich genau dort in der Nähe von 65535 (2 ^ 16 - 1). Vielleicht durchlaufen sie Zeichen mit einem kurzen i? Nur ein Gedanke. Ich frage mich, welche URL sie für 65k + o_o getestet haben ;;
Garet Claborn
5
Diese Antwort sollte möglicherweise akzeptiert werden, da sie die konkreten Antworten liefert: 2k für IE, 65k für Safari / Firefox, "more" für Opera.
Eis
Ich bin neugierig. Ist die 65k-URL eine Datenschema-URI oder wirklich eine URL im klassischen Sinne?
// Make sure the URL string isn't too long.// We're limiting it to 2GB for backwards compatibility with 32-bit executables using NS/CFURLif((urlStringLength >0)&&(urlStringLength <= INT_MAX)){...
Unter iOS habe ich getestet und bestätigt, dass sogar eine über 300 MB lange URL akzeptiert wird. Sie können eine so lange URL wie diese in Objective-C ausprobieren:
Sie, mein Herr, verdienen eine +1 nur für den Versuch, eine 300-MB-URL zu
testen
3
iOS ist kein Browser für sich. War das in Safari für iOS?
Randall
6
@ Randall-Schemata werden vom Betriebssystem verarbeitet und dann an die App gesendet, die sie öffnen kann. So können alle Apps unter iOS, einschließlich Safari, lange URIs verarbeiten.
Cœur
1
Danke für die Klarstellung. Vermutlich hindert dies jedoch nicht daran, dass eine beliebige App (z. B. ein Browser mit Tor-Unterstützung) eine eigene Längenbeschränkung einführt, richtig?
Randall
1
@ Randall richtig, aber warum sollte jemand das tun ...
Xander
70
Der URI-RFC (von dem URLs eine Teilmenge sind) definiert keine maximale Länge. Es wird jedoch empfohlen, dass der Hostnamen-Teil des URI (falls zutreffend) nicht länger als 255 Zeichen ist:
URI-Hersteller sollten Namen verwenden, die der DNS-Syntax entsprechen, auch wenn die Verwendung von DNS nicht sofort erkennbar ist, und diese Namen auf maximal 255 Zeichen beschränken.
Wie in anderen Beiträgen erwähnt, haben einige Browser eine praktische Beschränkung für die Länge einer URL.
URIs in HTTP können in absoluter Form oder relativ zu einigen
bekannten Basis-URIs [11] dargestellt werden, abhängig vom Kontext ihrer Verwendung. Die beiden
Formen unterscheiden sich dadurch, dass absolute URIs immer
mit einem Schemanamen gefolgt von einem Doppelpunkt beginnen. Definitive Informationen zur
URL-Syntax und -Semantik finden Sie unter "Uniform Resource Identifiers (URI): Generische Syntax und Semantik", RFC 2396 [42] (ersetzt die RFCs 1738 [4] und RFC 1808 [11]). Diese Spezifikation übernimmt die Definitionen von "URI-Referenz", "
AbsolutURI", "RelativURI", "Port", "Host", "Abs_Pfad", "Rel_Pfad" und "Autorität"
Spezifikation.
Das HTTP-Protokoll begrenzt die Länge
eines URI nicht von vornherein. Server MÜSSEN in der Lage sein, den URI jeder Ressource zu verarbeiten, die sie bedienen, und sollten 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 414 (Request-URI Too Long) zurückgeben. Status, wenn ein URI länger ist, als der Server verarbeiten kann (siehe Abschnitt 10.4.15).
Hinweis: Server sollten in Abhängigkeit von URI-Längen über 255 Byte vorsichtig sein, da einige ältere Client- oder Proxy-Implementierungen diese Längen möglicherweise nicht ordnungsgemäß unterstützen.
Wie von @Brian erwähnt, haben die HTTP-Clients (z. B. Browser) möglicherweise ihre eigenen Grenzen, und HTTP-Server haben unterschiedliche Grenzen.
Die soziale Schnittstelle zum Web basiert auf E-Mails, wenn Benutzer Webseiten einander empfehlen möchten, und E-Mails sind die zweithäufigste Art, wie Benutzer zu neuen Websites gelangen (Suchmaschinen sind am häufigsten): Stellen Sie sicher, dass alle URLs auf Ihrer Website vorhanden sind Die Site ist weniger als 78 Zeichen lang, damit sie nicht über einen Zeilenvorschub gewickelt wird.
Dies ist nicht das Maximum, aber ich würde dies als praktisches Maximum betrachten, wenn Sie möchten, dass Ihre URL geteilt wird.
Ich frage mich, woher "78" kommt? Vielleicht wurde dieser ursprüngliche Artikel von 1999 unter der Annahme geschrieben, dass Leute ihre E-Mails in 80x24-Terminalfenstern lesen? Trotzdem guter Rat!
Jon Schneider
3
Gut. IBM Lochkarten waren ebenfalls 80 Spalten. Mit zwei Zeichen, die von einem Wagenrücklauf und einem Zeilenvorschub aufgenommen wurden, erhalten Sie 78.
Paul Morgan
1
Haha. :-) Ich habe in meinem Kommentar tatsächlich überlegt, auf 80x25-CGA-Monitore aus der Zeit von 1981 zu verweisen, aber Sie haben noch weiter zurück erreicht! ... Ich war nicht für die Lochkarten-Ära da, aber hatten sie einen Durchmesser von 80 Bytes oder nur 80 Bit?
Jon Schneider
1
Nicht gerade ein Byte (8 Bit). In jeder Spalte wurde ein Zeichen codiert.
Paul Morgan
3
@JonSchneider - 78 ist sehr spezifisch und kann sich auf die Lesbarkeit von Text beziehen (aus Sicht der Benutzerfreundlichkeit vor dem Hintergrund von Nielsen), die am besten zwischen 50 und 60 und maximal 75 liegt .
Jay Rainey
36
Das Sitemaps-Protokoll , mit dem Webmaster Suchmaschinen über Seiten auf ihren Websites informieren können (das auch von Google in den Webmaster-Tools verwendet wird), unterstützt URLs mit weniger als 2048 Zeichen. Wenn Sie diese Funktion für die Suchmaschinenoptimierung verwenden möchten, berücksichtigen Sie dies.
Das ist etwas verwirrend. Sitemap-Protokolle "unterstützen URLs mit weniger als 2048 Zeichen." Ich stellte mir vor, eine Site wie example.com würde funktionieren. Ich denke, diese Frage ist mehr über das Maximum?
HoldOffHunger
19
ASP.NET 2 und SQL Server Reporting Services 2005 haben ein Limit von 2028. Ich habe dies auf die harte Tour herausgefunden, bei der mein dynamischer URL-Generator einige Parameter nicht über diesen Punkt hinaus an einen Bericht weitergibt. Dies war unter Internet Explorer 8.
Die Abweichung zwischen Internet Explorer und IIS ist sinnvoll, wenn Sie berücksichtigen, dass nicht alle Anforderungen an einen Webserver über einen Browser erfolgen.
TroySteven
15
Die Direktive "Limit Request Line" legt die maximale Länge einer URL fest. Standardmäßig ist 8190 eingestellt, wodurch Sie viel Platz haben. Andere Server und einige Browser beschränken die Länge jedoch stärker.
Da alle Parameter in der URL-Zeile übergeben werden, werden Elemente, die sich im Kennwort versteckter Felder befanden, natürlich auch in der URL angezeigt. Keines der Mobiltelefone sollte für echte Sicherheitsmaßnahmen verwendet werden und bestenfalls als kosmetische Sicherheit betrachtet werden.
Ich habe Erfahrung mit SharePoint 2007, 2010 und es gibt eine Begrenzung für die Länge der URL, die Sie in diesem Fall von der Serverseite aus erstellen können. SharePoint hängt daher hauptsächlich von 1) dem Client (Browser, Version und Betriebssystem) und 2) ab. die Servertechnologie, IIS, Apache usw.
Da SharePoint Web-URLs als Dateipfade verfügbar macht, unterliegt es einer separaten Einschränkung: Die maximale Länge des Windows-Dateipfads beträgt 260 Zeichen (oder 248 Zeichen bei Verwendung einer API). Weitere Informationen zu diesem Limit finden Sie im Abschnitt "Maximale Pfadlängenbeschränkung
Thriggle
10
Es scheint, dass Chrome zumindest diese Grenze angehoben hat. Ich habe 20.000 Zeichen in das Lesezeichen eingefügt und es hat gedauert.
Gemäß der HTTP-Spezifikation gibt es keine Begrenzung für die Länge einer URL. Halten Sie Ihre URLs unter 2048 Zeichen. Dadurch wird sichergestellt, dass die URLs in allen Client- und Serverkonfigurationen funktionieren. Auch Suchmaschinen wie URLs sollen unter ungefähr 2000 Zeichen bleiben.
get
anstelle von verwendetpost
, werden die eingegebenen Informationen durch Lesezeichen für die Seite erfasst, die vom ausgefüllten Formular erreicht wird. In einigen Fällen kann das schlecht sein, in anderen Fällen kann es nützlich sein. Damit dies funktioniert, muss der Browser jedoch in der Lage sein, eine URL zu verarbeiten, die alle Informationen enthält.post
die Kriterien abgeschnitten. Nur ein weiterer Anwendungsfall.Antworten:
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
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:
... 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:
(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 .
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.
quelle
Die längsten URLs, auf die ich gestoßen bin, sind Daten-URLs
Beispiel-Bild-URL aus Google-Bildergebnissen (11747 Zeichen)
quelle
WWW-FAQs: Was ist die maximale Länge einer URL? hat eine eigene Antwort, die auf empirischen Tests und Untersuchungen basiert. Die kurze Antwort lautet, dass das Überschreiten von 2048 Zeichen den Internet Explorer unglücklich macht und dies daher die Grenze ist, die Sie verwenden sollten. Auf der Seite finden Sie eine lange Antwort.
quelle
Ich habe diesen Test geschrieben, der immer wieder hinzugefügt wird
'a'
Parameter , bis der Browser ausfälltC # Teil:
Aussicht:
TEIL 1
Auf Chrome habe ich:
Es explodierte dann mit:
Gleiches gilt für Internet Explorer 8 und Firefox
TEIL 2
Ich ging in den einfachen Modus und fügte IISExpress
applicationhost.config
undweb.config
Einstellungen zusätzliche Grenzen hinzumaxQueryStringLength="32768"
.nach 7744 Zeichen.
TEIL 3
Hinzugefügt
das hat überhaupt nicht geholfen. Ich entschied mich schließlich, Fiddler zu verwenden, um den Referrer aus dem Header zu entfernen.
Welches hat gut getan.
Chrom: hat 15613 Zeichen. (Ich denke, es ist ein 16K-Limit für IIS)
Und es schlug erneut fehl mit:
Feuerfuchs:
Internet Explorer 8 schlug mit einem Absturz von iexplore.exe fehl.
Nach 2505
Android Emulator
Internet Explorer 11
Internet Explorer 10
Internet Explorer 9
quelle
console.log("%20".length +" "+decodeURI("%20").length)
dies sollte es erklärenEs gibt wirklich keine universelle maximale URL-Länge. Die maximale Länge wird nur durch die Unterstützung des Client-Browsers bestimmt, die sehr unterschiedlich ist. Das Limit von 2.083 ist nur in Internet Explorer vorhanden (alle Versionen bis 7.0). Die maximale Länge in Firefox und Safari scheint unbegrenzt zu sein, obwohl Instabilität bei URLs auftritt, die etwa 65.000 Zeichen erreichen. Opera scheint überhaupt keine maximale URL-Länge zu haben und leidet bei extrem langen Längen nicht unter Instabilität.
quelle
Auf Apple-Plattformen (iOS / macOS / tvOS / watchOS) kann das Limit ein 2 GB langes URL-Schema sein, wie aus diesem Kommentar im Quellcode von Swift hervorgeht :
Unter iOS habe ich getestet und bestätigt, dass sogar eine über 300 MB lange URL akzeptiert wird. Sie können eine so lange URL wie diese in Objective-C ausprobieren:
Und fangen Sie, wenn es gelingt mit:
quelle
Der URI-RFC (von dem URLs eine Teilmenge sind) definiert keine maximale Länge. Es wird jedoch empfohlen, dass der Hostnamen-Teil des URI (falls zutreffend) nicht länger als 255 Zeichen ist:
Wie in anderen Beiträgen erwähnt, haben einige Browser eine praktische Beschränkung für die Länge einer URL.
quelle
Die HTTP 1.1-Spezifikation lautet:
Wie von @Brian erwähnt, haben die HTTP-Clients (z. B. Browser) möglicherweise ihre eigenen Grenzen, und HTTP-Server haben unterschiedliche Grenzen.
quelle
Laut Microsoft Support beträgt die maximale URL-Länge in Internet Explorer 2.083 Zeichen.
IE hat Probleme mit längeren URLs. Firefox scheint mit> 4k Zeichen gut zu funktionieren.
quelle
In der URL als Benutzeroberfläche empfiehlt Jakob Nielsen:
Dies ist nicht das Maximum, aber ich würde dies als praktisches Maximum betrachten, wenn Sie möchten, dass Ihre URL geteilt wird.
quelle
Das Sitemaps-Protokoll , mit dem Webmaster Suchmaschinen über Seiten auf ihren Websites informieren können (das auch von Google in den Webmaster-Tools verwendet wird), unterstützt URLs mit weniger als 2048 Zeichen. Wenn Sie diese Funktion für die Suchmaschinenoptimierung verwenden möchten, berücksichtigen Sie dies.
quelle
ASP.NET 2 und SQL Server Reporting Services 2005 haben ein Limit von 2028. Ich habe dies auf die harte Tour herausgefunden, bei der mein dynamischer URL-Generator einige Parameter nicht über diesen Punkt hinaus an einen Bericht weitergibt. Dies war unter Internet Explorer 8.
quelle
Warum ist das Internet Explorer-Limit nur 2 KB, während IIS ein Limit von 16 KB hat? Ich denke nicht, dass es Sinn macht.
Daher möchte ich ein Experiment zu Größenbeschränkungen für Ajax-Anforderungs-URLs starten.
Ich habe die maxHttpHeaderSize = "1048576" meines Tomcat-HTTP-Connectors festgelegt. Und eine sehr lange URL vorbereitet.
Dann sende ich eine Anfrage mit der langen URL wie folgt:
jQuery-Berichte fertig. Tomcat meldet, dass die angeforderte URL 1048015 Byte beträgt. Es wurde mit Chrome 50 und Internet Explorer 11 getestet.
Daher werden Webbrowser Ihre URL beim Senden von Ajax-Anfragen nicht absichtlich abschneiden oder einschränken.
quelle
Die Direktive "Limit Request Line" legt die maximale Länge einer URL fest. Standardmäßig ist 8190 eingestellt, wodurch Sie viel Platz haben. Andere Server und einige Browser beschränken die Länge jedoch stärker.
Da alle Parameter in der URL-Zeile übergeben werden, werden Elemente, die sich im Kennwort versteckter Felder befanden, natürlich auch in der URL angezeigt. Keines der Mobiltelefone sollte für echte Sicherheitsmaßnahmen verwendet werden und bestenfalls als kosmetische Sicherheit betrachtet werden.
quelle
Ich habe Erfahrung mit SharePoint 2007, 2010 und es gibt eine Begrenzung für die Länge der URL, die Sie in diesem Fall von der Serverseite aus erstellen können. SharePoint hängt daher hauptsächlich von 1) dem Client (Browser, Version und Betriebssystem) und 2) ab. die Servertechnologie, IIS, Apache usw.
quelle
Es scheint, dass Chrome zumindest diese Grenze angehoben hat. Ich habe 20.000 Zeichen in das Lesezeichen eingefügt und es hat gedauert.
quelle
Gemäß der HTTP-Spezifikation gibt es keine Begrenzung für die Länge einer URL. Halten Sie Ihre URLs unter 2048 Zeichen. Dadurch wird sichergestellt, dass die URLs in allen Client- und Serverkonfigurationen funktionieren. Auch Suchmaschinen wie URLs sollen unter ungefähr 2000 Zeichen bleiben.
quelle