Pytanie Jaka jest maksymalna długość adresu URL w różnych przeglądarkach?


Jaka jest maksymalna długość adresu URL w różnych przeglądarkach? Czy różni się między przeglądarkami?

Czy dyktuje to protokół HTTP?


4118
2018-01-06 16:14


pochodzenie


FWIW, dla użytkowników systemu Windows, ścieżki do serwera przekraczające 250 znaków może wywoływać smutek przy budowaniu adresów URL, na przykład zobacz HttpContext.Current.Server.MapPath nie działa dla długich nazw plików w forums.asp.net. dolna linia: jeśli jedno ograniczenie cię nie zaprowadzi, to drugie może. - gerryLowry
Od support.microsoft.com/kb/208427 "Maksymalna długość adresu URL to 2 083 znaki w przeglądarce Internet Explorer " - gavenkoa
Czy mogę zapytać czemu czy musiałeś to wiedzieć? To znaczy. jaki jest pożytek z posiadania długiego adresu URL? - o0'.
@Lohoris: jeśli używa formularza get zamiast post, a następnie dodanie do zakładek strony, do której dotrze wypełniony formularz, spowoduje przechwycenie wprowadzonych informacji. W niektórych przypadkach może to być złe, ale w innych przypadkach może być przydatne. Aby to działało, przeglądarka musi obsługiwać adres URL zawierający wszystkie informacje. - supercat
@Lohoris Kiedy piszemy strony do generowania raportów, skorzystaliśmy z formularza kryteriów. Przydatne jest, aby w niektórych raportach móc wysłać adres URL do osoby z wbudowanymi kryteriami. W zależności od raportu jesteśmy czasami zmuszeni do użycia post lub kryteria zostaną obcięte. Kolejny przypadek użycia. - buzzsawddog


Odpowiedzi:


Krótka odpowiedź - de facto limit 2000 znaków

Jeśli adresy URL nie przekraczają 2000 znaków, będą działać w praktycznie dowolnej kombinacji oprogramowania klienckiego i serwerowego.

Jeśli kierujesz reklamy do określonych przeglądarek, zobacz poniżej, aby poznać więcej szczegółowych ograniczeń.

Dłuższa odpowiedź - po pierwsze, standardy ...

RFC 2616 (Sekcja 3.2.1 w sekcji Hypertext Transfer Protocol HTTP / 1.1)

Protokół HTTP nie umieszcza   dowolny a priori limit długości   URI. Serwery MUSZĄ być w stanie obsłużyć   URI dowolnego zasobu, któremu służą,   i powinno być w stanie obsłużyć identyfikatory URI   nieograniczona długość, jeśli zapewniają   Formy oparte na GET, które mogą generować   takie URI. Serwer POWINIEN wrócić   414 (Zbyt długo żądany identyfikator URI), jeśli a   Identyfikator URI jest dłuższy niż serwer   uchwyt (patrz rozdział 10.4.15).

To RFC zostało przestarzałe przez RFC7230 który jest odświeżeniem specyfikacji HTTP / 1.1. Zawiera podobny język, ale także sugeruje to następująco:

Różne ograniczenia ad hoc na długości linii zapytania znajdują się w   ćwiczyć. ZALECA SIĘ, że wszyscy nadawcy i odbiorcy HTTP   obsługują co najmniej długości linii o długości 8000 oktetów.

... i rzeczywistość

Tak właśnie jest standardy mówić. Dla rzeczywistość, widzieć te badania w boutell.com aby zobaczyć, jakie będą obsługiwane poszczególne przeglądarki i wdrożenia serwerów. Warto przeczytać, ale streszczenie to:

Niezwykle długie adresy URL to zazwyczaj   błąd. Adresy URL powyżej 2000 znaków   nie będzie działać w najpopularniejszej sieci   przeglądarki. Nie używaj ich, jeśli masz zamiar   twoja strona do pracy dla większości   Użytkownicy Internetu.

(Uwaga: jest to cytat z artykułu napisanego w 2006, ale w 2015 r. malejące użycie IE oznacza dłuższe adresy URL zrobić pracują dla większości. Jednak IE nadal ma ograniczenie ...)

Ograniczenia przeglądarki Internet Explorer ...

Maksymalna długość adresu URL w IE8 to 2083 znakówi wydaje się IE9 ma podobny limit.

Testowałem IE10, a pasek adresu przyjmuje tylko 2083 znaków. Możesz Kliknij URL dłuższy niż ten, ale pasek adresu nadal będzie wyświetlał tylko 2083 znaków tego linku.

Jest jeden miły zapis na blogu IE Internals co stanowi część tego tła.

Istnieją mieszane raporty IE11 obsługuje dłuższe adresy URL - patrz komentarze poniżej. Biorąc pod uwagę, że niektórzy ludzie zgłaszają problemy, ogólne porady są nadal aktualne.

Wyszukiwarki takie jak adresy URL <2048 znaków ...

Należy pamiętać, że protokół Sitemaps, która pozwala witrynie informować wyszukiwarki o dostępnych stronach, ma limit 2048 znaków w adresie URL. Jeśli zamierzasz używać map witryn, ustalono dla Ciebie limit! (widzieć Odpowiedź Calin-Andrei Burloiu poniżej)

W 2010 r. Przeprowadzono również kilka badań maksymalna długość adresu URL, którą wyszukiwarki będą indeksować i indeksować. Okazało się, że limit to 2047 znaków, co wydaje się być zgodne ze specyfikacją protokołu Sitemap. Jednak znaleźli również Google SERP narzędzie nie poradziłoby sobie z adresami dłuższymi niż 1855 znaków.

Dodatkowe przeglądanie w przeglądarce

Przetestowałem następujące parametry na serwerze Apache 2.4 skonfigurowanym z bardzo dużym rozmiarem LimitRequestLine i LimitRequestFieldSize.

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   

Zobacz też ta odpowiedź z Matas Vaitkevicius poniżej.

Czy ta informacja jest aktualna?

Jest to popularne pytanie, a ponieważ oryginalne badania mają około 9 lat, postaram się je aktualizować: od teraz Wrzesień 2017, rada nadal trwa. Mimo że IE11 może przyjmować dłuższe adresy URL, wszechobecność starszych instalacji IE oraz ograniczenia wyszukiwarek oznaczają, że pozostawanie poniżej 2000 znaków jest najlepszą ogólną polityką.


4180
2018-01-06 16:22



Zauważ, że IE11 nie będzie zakładki adresów URL dłuższych niż 260 znaków. Nie jestem pewien, czy Edge ma to samo ograniczenie. - Brian
Dzisiaj IE11 obcina mój adres URL do 2048 znaków. - AntiCZ
a co z Edge, Firefox i Chrome? IE jest teraz w zasadzie tutaj wymarły ... - bernstein
w Chrome w 2016 roku udało mi się otworzyć adres URL z 260300 ascii chars, używając polecenia open osx z prostego skryptu i mogłem potwierdzić, że wszystkie postacie zostały przekazane na serwer. Adres URL w przeglądarce zostanie skrócony do 32791 znaków, co oznacza, że ​​... (% E2% 80% A6% E2% 80% A6) - Rob Dawson
@Paul Dixon Naprawdę miło jest widzieć ludzi, którzy są gotowi, aby uzyskać więcej niż tylko odpowiedzi na pytania na tej stronie. Oczywiście ludzie okazują swoją wdzięczność, ponieważ obecna liczba przebojów wynosi 3734, ale chciałem podziękować! :) - drognisep


Najczęściej zadawane pytania dotyczące stron WWW: Jaka jest maksymalna długość adresu URL? ma własną odpowiedź na podstawie badań empirycznych i badań. Krótka odpowiedź brzmi: ponad 2048 znaków czyni program Internet Explorer niezadowolonym, a zatem jest to limit, którego powinieneś użyć. Zobacz stronę dla długiej odpowiedzi.


142
2018-01-06 16:18





Najdłuższe adresy URL, które spotkałem, są adresy URL danych

Przykładowy adres URL obrazu z wyników wyszukiwania Google (11747 znaków)

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

140
2017-07-18 23:12



Mówi on o tym, że kodowany jdeg base64 jest technicznie adresem URL, ponieważ jest określony jako dane: *. Chociaż ma rację stwierdzając, że jest to prawidłowy adres URL, nie sądzę, że właśnie o to pytało. - Fitblip
Dla ciekawskich jsfiddle.net/SJjJb/828 - jonperl
... lub po prostu wklej go na pasku adresu. - Gras Double
To jest URI, a nie URL. - mike jones
Ponieważ adres URL danych zawiera protokół "data:", a identyfikator to wszystko, czego potrzebujesz, ZLOKALIZUJ "plik" (nawet jeśli "System plików" jest przestrzenią wszystkich możliwych plików). Jest to zatem adres URL, który jest również identyfikatorem URI. (Ale zdecydowanie nie "nie jest to URL") - MickLH


Napisałem ten test, który ciągle dodaje 'a' do parametru, aż przeglądarka zawiedzie

Część C #:

[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();
}

Widok:

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

CZĘŚĆ 1

W Chrome mam:

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

Następnie wybuchło:

Błąd HTTP 404.15 - nie odnaleziony Moduł filtrowania żądań jest   skonfigurowane do odmowy żądania, gdy ciąg zapytania jest zbyt długi.

To samo dotyczy przeglądarki Internet Explorer 8 i 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

CZĘŚĆ 2

Poszedłem w łatwy tryb i dodał dodatkowe limity do IISExpress  applicationhost.config i web.config oprawa maxQueryStringLength="32768".

Chrome failed with message 'Bad Request - Request Too Long

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

po 7744 znakach.

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

CZĘŚĆ 3

Dodany

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

co w ogóle nie pomogło. W końcu zdecydowałem się użyć skrzypka, aby usunąć stronę odsyłającą z nagłówka.

static function OnBeforeRequest(oSession: Session) {
    if (oSession.url.Contains("localhost:50766")) {
        oSession.RequestHeaders.Remove("Referer");
    }

Co ładnie.

Chrom: dostałem 15613 znaków. (Przypuszczam, że jest to limit 16 KB dla IIS)

I znowu zawiodło:

<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

Firefox:

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

Internet Explorer 8 nie powiodło się z powodu awarii pliku iexplore.exe.

Enter image description here

Po 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

Emulator Androida

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

111
2017-07-06 16:14



Więc w efekcie moje założenie 512 znaków jest w dużej mierze błędne ^ _ ^ Dzięki za test. Nigdy nie będę już dbał o długość parametru zapytania. - Sugato
To powinna być zaakceptowana odpowiedź ... pierwsza nie zapewnia twardych limitów dla każdej przeglądarki, o co pytają. - GrayedFox
Może warto też zajrzeć do Safari. Safari jest jedyną przeglądarką, która nie obsługuje pobierania generowanego przez klienta. Rozwiązania tego problemu to: a) otworzenie identyfikatora URI BLOB (krótki, tymczasowy identyfikator URI wskazujący na obiekt typu blob w pamięci) w nowym oknie, b) otwarcie identyfikatora URI danych kodowanych base-64 w nowym oknie (może być bardzo długi, ale obsługuje pisanie mime). Szczegóły tutaj: github.com/eligrey/FileSaver.js/issues/12 - Mat Gessel
@Vaitkevicius wiesz, czy spacja (% 20) jest liczona jako jedna czy 3? - Jun
@Jun zależy gdzie ... naciśnij klawisz F12 i wklej następujące po konsoli console.log("%20".length +" "+decodeURI("%20").length) to powinno to wyjaśnić - Matas Vaitkevicius


Tak naprawdę nie ma uniwersalnej maksymalnej długości adresu URL. Maksymalna długość jest określana tylko przez to, co przeglądarka klienta obsługuje, co jest bardzo różne. Limit 2,083 jest obecny tylko w programie Internet Explorer (wszystkie wersje do 7,0). Maksymalna długość w Firefoksie i Safari wydaje się być nieograniczona, chociaż niestabilność występuje w przypadku adresów URL zawierających około 65 000 znaków. Wydaje się, że Opera nie ma maksymalnej długości adresu URL i nie ulega niestabilności w ekstremalnie długich okresach.


93
2017-08-05 10:17



Jeśli niestabilność wynosi około 65k, prawdopodobnie jest blisko 65535 (2 ^ 16 - 1). Może przechodzą przez znaki używając skrótu i? Tylko myśl. Zastanawiam się, jaki adres URL przetestowali dla 65k + o_o ;; - Garet Claborn
Ta odpowiedź jest być może tą, która powinna zostać zaakceptowana, ponieważ zapewnia konkretne odpowiedzi: 2k dla IE, 65k dla Safari / Firefoxa, "więcej" dla Opery. - eis
Jestem ciekawy. Czy adres URL 65k jest identyfikatorem URI schematu danych, czy naprawdę adresem URL w klasycznym sensie? - SaAtomic


The Identyfikator URI RFC(z których URL-e są podzbiorem) nie określa maksymalnej długości, jednak tak się dzieje polecić część nazwy URI hosta (jeśli dotyczy) nie może przekraczać 255 znaków:

Producenci URI powinni używać nazw, które   jest zgodny ze składnią DNS, nawet jeśli   korzystanie z DNS nie jest natychmiastowe   oczywiste i powinny ograniczyć te nazwy   do nie więcej niż 255 znaków w   długość.

Jak zauważono w innych postach, niektóre przeglądarki mają praktyczne ograniczenia dotyczące długości adresu URL.


66
2018-01-06 16:20





W systemie iOS nie ma ograniczeń dotyczących schematów URL. Akceptowany jest nawet adres URL o długości 300 MB. Możesz wypróbować taki długi adres URL:

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

I złap, jeśli się to uda:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSLog(@"length: %@", @(request.URL.absoluteString.length));
    return YES;
}

53
2018-06-27 06:49



Zasługujesz na +1, starając się spróbować adresu URL o wielkości 300 MB - Дамян Станчев
iOS nie jest przeglądarką samą w sobie. Czy to było w Safari na iOS? - Randall
Schematy @Randall są obsługiwane przez system operacyjny, a następnie wysyłane do aplikacji, która może je otworzyć. Wszystkie aplikacje na iOS, w tym Safari, mogą obsługiwać długi URI. - Cœur
Dziękuję za wyjaśnienie. Przypuszczalnie nie przeszkadza to jednak arbitralnej aplikacji (np. Przeglądarce z obsługą Tor'a) w wprowadzeniu własnego ograniczenia długości, prawda? - Randall


The Specyfikacja HTTP 1.1 mówi:

Identyfikatory URI w HTTP można reprezentować w   bezwzględna forma lub w stosunku do niektórych
  znany bazowy URI [11], w zależności od   kontekst ich użycia. Dwójka
  formy są zróżnicowane przez fakt   że absolutne URI zawsze się zaczynają
  z nazwą schematu, po której następuje a   dwukropek. Aby uzyskać ostateczne informacje na
  Składnia i semantyka adresów URL, patrz "Jednolite   Identyfikatory zasobów (URI): Ogólne   Składnia i semantyka, "RFC 2396 [42]   (który zastępuje RFC 1738 [4] i   RFC 1808 [11]). Ta specyfikacja   przyjmuje definicje   "URI-reference", "absoluteURI",   "relativeURI", "port",
  "host", "abs_path", "rel_path", i   "autorytet" z tego
  specyfikacja.

Protokół HTTP nie umieszcza   dowolny a priori limit długości
  URI. Serwery MUSZĄ być w stanie obsłużyć   URI dowolnego zasobu, któremu służą,   i powinno być w stanie obsłużyć identyfikatory URI   nieograniczona długość, jeśli zapewniają   Formy oparte na GET, które mogą generować   takie URI. *
 Serwer POWINIEN wrócić   414 (Zbyt długo żądany identyfikator URI), jeśli a   Identyfikator URI jest dłuższy niż serwer   uchwyt (patrz rozdział 10.4.15).

Uwaga: Serwery powinny być ostrożne w zależności od URI   długości         powyżej 255 bajtów, ponieważ niektóre starsze klienty lub proxy         implementacje mogą nie obsługiwać poprawnie tych długości.

Jak wspomniano w @Brian, klienci HTTP (na przykład przeglądarki) mogą mieć własne ograniczenia, a serwery HTTP będą miały różne ograniczenia.


49
2018-01-06 16:26





Wsparcie Microsoft mówi "Maksymalna długość adresu URL to 2083 znaki w przeglądarce Internet Explorer".

IE ma problemy z adresami URL dłużej. Firefox wydaje się działać dobrze z> 4k znaków.


43
2018-05-26 16:18