Was ist die maximale Länge einer URL in verschiedenen Browsern?

4841

Was ist die maximale Länge einer URL in verschiedenen Browsern? Unterscheidet es sich zwischen Browsern?

Gibt das HTTP-Protokoll dies vor?

Schleifer Versluys
quelle
38
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 .
GerryLowry
21
Von support.microsoft.com/kb/208427 "Maximale URL-Länge beträgt 2.083 Zeichen in Internet Explorer"
Gavenkoa
9
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 ....)

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 requestwenn 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.

Paul Dixon
quelle
83
Beachten Sie, dass IE11 keine URLs mit mehr als 260 Zeichen als Lesezeichen setzt . Ich bin mir nicht sicher, ob Edge dieselbe Einschränkung hat.
Brian
10
Heute schneidet IE11 meine URL auf 2048 Zeichen.
AntiCZ
2
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)

data:image/jpeg;base64,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
CyberJunkie
quelle
36
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.

Brian
quelle
153

Ich habe diesen Test geschrieben, der immer wieder hinzugefügt wird 'a' Parameter , bis der Browser ausfällt

C # Teil:

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult ParamTest(string x)
{
    ViewBag.TestLength = 0;
    if (!string.IsNullOrEmpty(x))
    {
        System.IO.File.WriteAllLines("c:/result.txt",
                       new[] {Request.UserAgent, x.Length.ToString()});
        ViewBag.TestLength = x.Length + 1;
    }

    return View();
}

Aussicht:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<script type="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.

Gleiches gilt für Internet Explorer 8 und Firefox

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)
2046

Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0
2046

TEIL 2

Ich ging in den einfachen Modus und fügte IISExpress applicationhost.config und web.configEinstellungen zusätzliche Grenzen hinzumaxQueryStringLength="32768" .

Chrome failed with message 'Bad Request - Request Too Long

HTTP Error 400. The size of the request headers is too long.

nach 7744 Zeichen.

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36
7744

TEIL 3

Hinzugefügt

<headerLimits>
    <add header="Content-type" sizeLimit="32768" />
</headerLimits>

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.

Geben Sie hier die Bildbeschreibung ein

Nach 2505

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)
2505

Android Emulator

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
Matas Vaitkevicius
quelle
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.

Web-Marketing-Strategien provi
quelle
8
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?
SaAtomic
81

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 :

// Make sure the URL string isn't too long.
// We're limiting it to 2GB for backwards compatibility with 32-bit executables using NS/CFURL
if ( (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:

NSString *path = [@"a:" stringByPaddingToLength:314572800 withString:@"a" startingAtIndex:0];
NSString *js = [NSString stringWithFormat:@"window.location.href = \"%@\";", path];
[self.webView stringByEvaluatingJavaScriptFromString:js];

Und fangen Sie, wenn es gelingt mit:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSLog(@"length: %@", @(request.URL.absoluteString.length));
    return YES;
}
Cœur
quelle
74
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.

casperOne
quelle
55

Die HTTP 1.1-Spezifikation lautet:

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.

Greg
quelle
47

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.

MegaTux
quelle
39

In der URL als Benutzeroberfläche empfiehlt Jakob Nielsen:

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.

Paul Morgan
quelle
3
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.

Calin-Andrei Burloiu
quelle
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.

Fandango68
quelle
18

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:

var url="/ajax/url-length.jsp";
jQuery.ajax(url,{data:{q:"0".repeat(1048000-url.length-4)}});

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.

Fuweichin
quelle
4
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.

Webslatesoftware
quelle
11

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.

Leonidas Menendez
quelle
1
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.

wibberding
quelle
1

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.

Anoop Gupta
quelle