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


4837

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?


38
FWIW, dla użytkowników systemu Windows, ścieżki serwera przekraczające 250 znaków mogą powodować smutek podczas budowania adresów URL, na przykład patrz HttpContext.Current.Server.MapPath nie działa w przypadku długich nazw plików na forums.asp.net . Konkluzja: jeśli jedno ograniczenie cię nie dotrze, inne może .
gerryLowry

21
Od support.microsoft.com/kb/208427 „Maksymalna długość adresu URL to 2083 znaków w Internet Explorerze”
gavenkoa

9
Czy mogę zapytać, dlaczego musiałeś to wiedzieć? Taki jest przykład użycia długiego adresu URL?
o0 ”.

17
@Lohoris: Jeśli formularz używa getzamiast post, zakładka strony, do której dotarł wypełniony formularz, przechwytuje wprowadzone informacje. W niektórych przypadkach może to być złe, ale w innych przypadkach może być przydatne. Aby to zadziałało, przeglądarka musi obsługiwać adres URL zawierający wszystkie informacje.
supercat

4
@Lohoris Podczas pisania stron w celu generowania raportów korzystaliśmy z formularza kryteriów. Przy niektórych raportach przydaje się możliwość wysłania adresu e-mail do kogoś z wbudowanymi kryteriami. W zależności od raportu jesteśmy czasami zmuszeni do jego użycia postlub kryteria zostają obcięte. Po prostu kolejny przypadek użycia.
buzzsawddog

Odpowiedzi:


4952

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

Jeśli utrzymasz adresy URL poniżej 2000 znaków, będą one działać praktycznie w dowolnej kombinacji oprogramowania klienta i serwera.

Jeśli kierujesz reklamy na określone przeglądarki, zobacz poniżej szczegółowe informacje na temat określonych limitów.

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

RFC 2616 (Hypertext Transfer Protocol HTTP / 1.1) mówi sekcja 3.2.1

Protokół HTTP nie nakłada żadnych ograniczeń a priori na długość identyfikatora URI. Serwery MUSZĄ być w stanie obsłużyć identyfikator URI dowolnego obsługiwanego zasobu i POWINNY być w stanie obsłużyć identyfikatory URI o nieograniczonej długości, jeśli dostarczą formularze oparte na GET, które mogłyby generować takie identyfikatory URI. Serwer POWINIEN zwracać status 414 (zbyt długi identyfikator URI żądania), jeśli identyfikator URI jest dłuższy niż serwer jest w stanie obsłużyć (patrz sekcja 10.4.15).

To RFC zostało zastąpione przez RFC7230, który jest odświeżeniem specyfikacji HTTP / 1.1. Zawiera podobny język, ale sugeruje to również:

W praktyce występują różne ograniczenia ad hoc dotyczące długości linii zapytania. ZALECANE jest, aby wszyscy nadawcy i odbiorcy HTTP obsługiwali co najmniej długość wiersza żądania wynoszącego 8000 oktetów.

... i rzeczywistość

Tak mówią standardy . W rzeczywistości na stronie boutell.com był artykuł (link prowadzi do kopii zapasowej archiwum internetowego), w którym omawiano, jakie obsługiwane będą poszczególne wdrożenia przeglądarki i serwera. Streszczenie to:

Niezwykle długie adresy URL są zwykle błędem. Adresy URL o długości ponad 2000 znaków nie będą działać w najpopularniejszych przeglądarkach internetowych. Nie używaj ich, jeśli witryna ma działać dla większości użytkowników Internetu.

(Uwaga: to jest cytat z artykułu napisanego w 2006 roku , ale w 2015 roku środki zmniejszające IE za użytkowanie, że dłuższe adresy zrobić pracę dla większości jednak IE nadal ma ograniczenia ...).

Ograniczenia przeglądarki Internet Explorer ...

Maksymalna długość adresu URL IE8 wynosi 2083 znaków i wydaje się, że IE9 ma podobny limit .

Przetestowałem IE10 i pasek adresu akceptuje tylko 2083 znaki. Możesz kliknąć adres URL dłuższy niż ten, ale pasek adresu nadal będzie wyświetlać tylko 2083 znaki tego linku.

Na blogu IE Internals znajduje się ładny opis, który zawiera kilka podstawowych informacji na ten temat.

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

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

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

Istnieją również badania z 2010 r. Dotyczące maksymalnej długości adresów URL, które wyszukiwarki będą indeksować i indeksować . Odkryli, że limit wynosił 2047 znaków, co wydaje się być zgodne ze specyfikacją protokołu mapy witryny. Okazało się jednak, że narzędzie Google SERP nie poradziłoby sobie z adresami URL dłuższymi niż 1855 znaków.

Sieci CDN mają ograniczenia

CDN nakładają również ograniczenia na długość identyfikatora URI i zwracają wartość a 414 Too long requestpo osiągnięciu tych limitów, na przykład:

(Podziękowania dla timrs2998 za podanie tych informacji w komentarzach)

Dodatkowy przegląd przeglądarki

Testowałem poniższe na serwerze Apache 2.4 skonfigurowanym z bardzo dużymi 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 także tę odpowiedź Matasa Vaitkeviciusa poniżej.

Czy te informacje są aktualne?

To popularne pytanie, a ponieważ oryginalne badania mają około 12 lat, postaram się je aktualizować: od stycznia 2020 r. Rada jest nadal aktualna . Mimo że IE11 może akceptować 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ą.


83
Pamiętaj, że IE11 nie będzie zakładki adresów URL dłuższych niż 260 znaków . Nie jestem pewien, czy Edge ma takie same ograniczenia.
Brian

10
Dzisiaj IE11 przycina mój adres URL do 2048 znaków.
AntiCZ

2
Pierwotne pytanie: „Jaka jest maksymalna długość adresu URL w różnych przeglądarkach ”. To nie odpowiada na pytanie, daje tylko dla IE. Ludzie tworzą strony internetowe do różnych celów, na przykład wewnętrznych narzędzi, do których NIGDY nie będzie uzyskiwany dostęp.
Skeets

13
w Chrome w 2016 roku byłem w stanie otworzyć adres URL z 260300 znakami ascii za pomocą polecenia open osx z prostego skryptu i mogłem potwierdzić, że wszystkie znaki zostały przekazane na serwer. Adres URL w przeglądarce zostaje obcięty do 32791 znaków, co kończy się na ... (% E2% 80% A6% E2% 80% A6)
Rob Dawson

22
@Paul Dixon Naprawdę miło jest widzieć ludzi, którzy są gotowi wyjść z siebie, odpowiadając na pytania na tej stronie. Oczywiście ludzie okazują swoją wdzięczność, ponieważ obecna liczba głosów wynosi 3734, ale chciałem podziękować! :)
drognisep

170

Najdłuższe adresy URL, które napotkałem, to adresy danych

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

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

36
Mówi o tym, że jpeg zakodowany w standardzie base64 jest technicznie adresem URL, ponieważ jest określony jako dane: *. Chociaż słusznie twierdzi, że jest to prawidłowy adres URL, nie sądzę, by o to pytało.
Fitblip,

54
... lub po prostu wklej go w pasku adresu.
Gras Double

108
To jest URI, a nie URL.
Mike Jones

65
Ponieważ adres URL danych zawiera protokół „data:” i identyfikator, to wszystko, czego potrzebujesz, aby ZLOKALIZOWAĆ ten „plik” (nawet jeśli „System plików” to przestrzeń 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

5
@DoubleGras Google Chrome na Maca nie pozwala mi wkleić tak długiego adresu URL do paska adresu
Max Nanasy


153

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

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 wysadził w powietrze:

Błąd HTTP 404.15 - Nie znaleziono Moduł filtrowania żądań jest skonfigurowany do odrzucania żądania, w którym 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 do trybu łatwego i dodałem dodatkowe ograniczenia do IISExpress applicationhost.config i web.configustawień 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 wcale nie pomogło. W końcu zdecydowałem się użyć skrzypka do usunięcia strony odsyłającej z nagłówka.

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

Co dobrze.

Chrome: ma 15613 znaków. (Myślę, że to limit 16K dla IIS)

I znów się nie udał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 powiódł się z awarią iexplore.exe.

Wpisz opis zdjęcia tutaj

Po 2505 r

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

W rezultacie 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ść param zapytania.
Gogol

17
To powinna być zaakceptowana odpowiedź ... ta pierwsza nie określa sztywnych limitów dla każdej przeglądarki, o co pytają pytania.
GrayedFox

1
Warto też zajrzeć do Safari. Safari jest jedyną przeglądarką, która nie obsługuje pobierania wygenerowanego przez klienta. Obejścia obejmują: a) otwórz URI BLOB (krótki, tymczasowy URI, który wskazuje na obiekt Blob w pamięci) w nowym oknie, b) otwórz URI danych zakodowanych w standardzie 64 w nowym oknie (może być bardzo długi, ale obsługuje pisanie mimów). Szczegóły tutaj: github.com/eligrey/FileSaver.js/issues/12
Mat Gessel

@Vaitkevicius czy wiesz, czy spacja (% 20) jest liczona jako jeden znak, czy 3?
Jun711

1
@ Czerwiec zależy od tego, gdzie ... naciśnij F12 i wklej następujące polecenie do konsoli, console.log("%20".length +" "+decodeURI("%20").length)to powinno to wyjaśniać
Matas Vaitkevicius

96

Tak naprawdę nie ma uniwersalnej maksymalnej długości adresu URL. Maksymalna długość zależy tylko od tego, co przeglądarka klienta wybiera do obsługi, która jest bardzo zróżnicowana. Limit 2083 jest obecny tylko w przeglądarce Internet Explorer (wszystkie wersje do wersji 7.0). Maksymalna długość w Firefox i Safari wydaje się być nieograniczona, chociaż niestabilność występuje przy adresach URL sięgających około 65 000 znaków. Wydaje się, że Opera nie ma żadnej maksymalnej długości adresu URL i nie cierpi na niestabilność przy bardzo długich długościach.


8
Jeśli niestabilność wynosi około 65 tys., Prawdopodobnie jest to prawie 65535 (2 ^ 16 - 1). Może przeglądają znaki przy użyciu krótkiego I? Tylko myśl. Zastanawiam się, jaki adres URL przetestowali dla 65k + o_o ;;
Garet Claborn,

5
Być może te odpowiedzi powinny zostać zaakceptowane, ponieważ zawierają konkretne odpowiedzi: 2k dla IE, 65k dla Safari / Firefox, „więcej” dla Opery.
eis

Jestem ciekawy. Czy 65k adres URL to identyfikator URI schematu danych, czy naprawdę adres URL w klasycznym znaczeniu?
SaAtomic

81

Na platformach Apple (iOS / macOS / tvOS / watchOS) limitem może być schemat o długości 2 GB , jak widać w tym komentarzu w kodzie źródłowym Swift :

// 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) )
{
...

W systemie iOS przetestowałem i potwierdziłem, że akceptowany jest nawet ponad 300 MB URL. Możesz wypróbować taki długi URL taki jak ten w Objective-C:

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ę uda:

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

74
Zasługujesz na +1 za próbę adresu URL 300 MB
Дамян Станчев

3
iOS sam w sobie nie jest przeglądarką. Czy to było w Safari na iOS?
Randall,

6
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 identyfikator URI.
Cœur

1
Dziękuję za wyjaśnienie. Przypuszczalnie jednak nie przeszkadza to arbitralnej aplikacji (powiedzmy np. Przeglądarce opartej na Tor) wprowadzenia własnego ograniczenia długości, prawda?
Randall,

1
@ Losowanie poprawne, ale dlaczego ktoś miałby to zrobić ...
Xander

70

URI RFC (których adresy są podzbiorem) nie określa maksymalną długość, jednak nie polecam , że część hosta URI (jeśli dotyczy) nie może przekraczać 255 znaków:

Producenci URI powinni używać nazw zgodnych ze składnią DNS, nawet jeśli użycie DNS nie jest od razu widoczne, i powinny ograniczać te nazwy do nie więcej niż 255 znaków.

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


55

Specyfikacja HTTP 1.1 mówi:

Identyfikatory URI w HTTP mogą być reprezentowane w formie bezwzględnej lub względnej w stosunku do niektórych
znanych podstawowych URI [11], w zależności od kontekstu ich użycia. Te dwie
formy różnią się tym, że bezwzględne URI zawsze zaczynają
się od nazwy schematu, po której następuje dwukropek. Aby uzyskać ostateczne informacje na temat
składni i semantyki adresów URL, zobacz „Identyfikatory URI: ogólna składnia i semantyka”, RFC 2396 [42] (który zastępuje RFC 1738 [4] i RFC 1808 [11]). Ta specyfikacja przyjmuje definicje „referencji URI”, „bezwzględnegoURI”, „względnegoURI”, „portu”,
„hosta”, „abs_path”, „rel_path” i „uprawnień” z tej
specyfikacji.

Protokół HTTP nie nakłada żadnych ograniczeń a priori na długość
identyfikatora URI. Serwery MUSZĄ być w stanie obsłużyć identyfikator URI dowolnego obsługiwanego zasobu i POWINNY być w stanie obsłużyć identyfikatory URI o nieograniczonej długości, jeśli dostarczą formularze oparte na GET, które mogłyby generować takie identyfikatory URI. *
Serwer POWINIEN zwrócić 414 (zbyt długi identyfikator URI żądania) status, jeśli identyfikator URI jest dłuższy niż serwer może obsłużyć (patrz sekcja 10.4.15).

Uwaga: serwery powinny zachować ostrożność w zależności od długości identyfikatora URI powyżej 255 bajtów, ponieważ niektóre starsze implementacje klienta lub serwera proxy mogą nie obsługiwać tych długości.

Jak wspomniano @Brian, klienci HTTP (np. Przeglądarki) mogą mieć własne ograniczenia, a serwery HTTP będą miały inne ograniczenia.


47

Pomoc techniczna Microsoft mówi „Maksymalna długość adresu URL to 2083 znaków w Internet Explorerze”.

IE ma problemy z dłuższymi adresami URL. Wygląda na to, że Firefox działa dobrze z> 4k znakami.


39

W adresie URL jako interfejs użytkownika Jakob Nielsen zaleca:

interfejs społecznościowy do sieci opiera się na wiadomościach e-mail, gdy użytkownicy chcą polecać sobie nawzajem strony internetowe, a poczta e-mail jest drugim najpopularniejszym sposobem, w jaki użytkownicy przechodzą do nowych witryn (najczęściej wyszukiwarek): upewnij się, że wszystkie adresy URL w Twojej witrynie Witryna ma mniej niż 78 znaków, więc nie będą przewijać się przez kanał.

To nie jest maksimum, ale uważam to za praktyczne maksimum, jeśli chcesz udostępnić swój adres URL.


3
Zastanawiam się, skąd pochodzi „78”? Może ten oryginalny artykuł z 1999 roku został napisany przy założeniu, że ludzie czytają swoje wiadomości e-mail w oknach terminala 80x24? Mimo to dobra rada!
Jon Schneider

3
Dobrze. Karty dziurkowania IBM miały również 80 kolumn. Z dwoma znakami zajętymi przez powrót karetki i linią, dostajesz 78.
Paul Morgan

1
Ha ha. :-) Właściwie zastanawiałem się nad odniesieniem do monitorów CGA 80x25 z ery 1981 w moim komentarzu, ale sięgnąłeś jeszcze dalej! ... Nie byłem w erze kart perforowanych, ale czy miały one 80 bajtów, czy tylko 80 bitów?
Jon Schneider

1
Niezupełnie bajt (8 bitów). Zakodował jeden znak w każdej kolumnie.
Paul Morgan

3
@JonSchneider - 78 jest dość specyficzny i może odnosić się do czytelności tekstu (z perspektywy użyteczności, biorąc pod uwagę tło Nielsena), który najlepiej jest w przedziale 50-60, a maksymalnie 75 .
Jay Rainey,

36

Protokół Sitemaps , który jest dla webmasterów sposobem informowania wyszukiwarek o stronach w ich witrynach (używanych również przez Google w Narzędziach dla webmasterów), obsługuje adresy URL o długości mniejszej niż 2048 znaków. Jeśli więc planujesz użyć tej funkcji do optymalizacji pod kątem wyszukiwarek, weź to pod uwagę.


To jest trochę mylące. Protokoły map witryn „obsługuje adresy URL zawierające mniej niż 2048 znaków”. Wyobrażałem sobie, że witryna taka jak example.com będzie działać. Myślę, że to pytanie dotyczy bardziej maksimum?
HoldOffHunger,

19

Limit usług raportowania w programach ASP.NET 2 i SQL Server 2005 wynosi 2028. Przekonałem się o tym na własnej skórze, gdy mój dynamiczny generator adresów URL nie przekazywał niektórych parametrów do raportu poza tym punktem. Tak było w Internet Explorerze 8.


18

Dlaczego Internet Explorer ogranicza tylko 2 KB, podczas gdy IIS ma limit 16 KB? Nie sądzę, żeby to miało sens.

Chcę więc rozpocząć eksperyment dotyczący limitów rozmiaru URL żądania Ajax.

Ustawiłem maxHttpHeaderSize = "1048576" mojego złącza HTTP Tomcata. I przygotowałem bardzo długi URL.

Następnie wysyłam zapytanie o długim adresie URL, jak poniżej:

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

Raporty jQuery wykonane. Tomcat zgłasza, że ​​żądany adres URL to 1048015 bajtów. Został przetestowany z Chrome 50 i Internet Explorer 11.

Dlatego przeglądarki internetowe nie celowo obcinają ani nie ograniczają adresu URL podczas wysyłania żądań Ajax.


4
Różnice między Internet Explorerem a IIS mają sens, gdy weźmie się pod uwagę, że nie wszystkie żądania do serwera WWW są realizowane przez przeglądarkę.
TroySteven

15

Dyrektywa w sprawie linii limitów określa maksymalną długość adresu URL. Domyślnie jest ustawiony na 8190, co daje dużo miejsca. Jednak inne serwery i niektóre przeglądarki bardziej ograniczają długość.

Ponieważ wszystkie parametry są przekazywane w wierszu adresu URL, elementy, które były w haśle ukrytych pól, również będą wyświetlane w adresie URL. Żaden telefon komórkowy nie powinien być wykorzystywany do rzeczywistych środków bezpieczeństwa i w najlepszym wypadku powinien być uważany za bezpieczeństwo kosmetyczne.


11

Mam doświadczenie z SharePoint 2007, 2010 i istnieje limit długości adresu URL, który możesz utworzyć po stronie serwera w tym przypadku SharePoint, więc zależy to głównie od: 1) klienta (przeglądarki, wersji i systemu operacyjnego) i 2) technologia serwerowa, IIS, Apache itp.


1
Ponieważ program SharePoint udostępnia internetowe adresy URL jako ścieżki plików, ma osobne ograniczenie: limit długości ścieżki pliku systemu Windows wynoszący 260 znaków (lub 248 znaków podczas korzystania z interfejsu API). Aby uzyskać więcej informacji na temat tego limitu, sprawdź sekcję „Ograniczenie maksymalnej długości ścieżki” tutaj: msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx
Thriggle

10

Wygląda na to, że Chrome przynajmniej podniósł ten limit. Wkleiłem 20 000 znaków do bookmarkletu i zabrało to.


1

Zgodnie ze specyfikacją HTTP długość adresu URL nie jest ograniczona. Utrzymuj adresy URL poniżej 2048 znaków; zapewni to działanie adresów URL we wszystkich konfiguracjach klientów i serwerów. Ponadto wyszukiwarki, takie jak adresy URL, nie mogą przekraczać około 2000 znaków.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.