Farklı tarayıcılarda bir URL'nin maksimum uzunluğu nedir?


4839

Farklı tarayıcılarda bir URL'nin maksimum uzunluğu nedir? Tarayıcılar arasında farklılık gösterir mi?

HTTP protokolü bunu gerektiriyor mu?


38
FWIW, Windows kullanıcıları için, 250 karakteri aşan sunucu yolları olabilir , örneğin URL'leri oluştururken, keder neden bkz HttpContext.Current.Server.MapPath uzun dosya adları için başarısız olarak forums.asp.net . alt satır: bir kısıtlama size ulaşmazsa, başka bir kısıtlama olabilir .
GerryLowry

21
Gönderen support.microsoft.com/kb/208427 "Maksimum URL uzunluğu 2083 Internet Explorer karakterler"
gavenkoa

9
Bunu neden bilmeniz gerektiğini sorabilir miyim ? Uzun bir URL'ye sahip olmanın kullanım durumu nedir?
o0 '.

17
@ Lohoris: Bir form getdaha çok kullanırsa post, doldurulmuş form tarafından ulaşılan sayfaya yer işareti koymak girilen bilgileri yakalar. Bazı durumlarda, bu kötü olabilir, ancak diğer durumlarda yararlı olabilir. Ancak bunun çalışması için tarayıcının tüm bilgileri içeren bir URL'yi işleyebilmesi gerekir.
supercat

4
@ Looris Rapor oluşturmak için sayfa yazarken bir ölçüt formu kullandık. Bazı raporlarda, URL'yi yerleşik ölçütlere sahip birine e-postayla gönderebilmek yararlıdır. Rapora bağlı olarak bazen kullanmak zorunda kalıyoruz postveya ölçütler kısalıyor. Başka bir kullanım durumu.
buzzsawddog

Yanıtlar:


4955

Kısa cevap - fiili 2000 karakter sınırı

URL'leri 2000 karakterin altında tutarsanız, neredeyse tüm istemci ve sunucu yazılım kombinasyonlarında çalışırlar.

Belirli tarayıcıları hedefliyorsanız, daha fazla ayrıntıya ilişkin spesifik sınırlar için aşağıya bakın.

Daha uzun cevap - önce standartlar ...

RFC 2616 (Köprü Metni Aktarım Protokolü HTTP / 1.1) bölüm 3.2.1 diyor

HTTP protokolü, bir URI'nin uzunluğuna herhangi bir a priori sınırı koymaz. Sunucular, hizmet ettikleri herhangi bir kaynağın URI'sini işleyebilmelidir ZORUNLU ve bu URI'leri oluşturabilecek GET tabanlı formlar sağlarlarsa sınırsız uzunlukta URI'leri işleyebilmelidir. Bir URI, sunucunun işleyebileceğinden daha uzunsa bir sunucu 414 (İstek-URI Çok Uzun) durumuna dönmelidir (bkz. Bölüm 10.4.15).

Bu RFC, HTTP / 1.1 belirtiminin yenilenmesi olan RFC7230 tarafından kullanılmamıştır . Benzer bir dil içerir, ancak bunu önermeye devam eder:

Uygulamada, istek satırı uzunluğunda çeşitli geçici sınırlamalar bulunmaktadır. Tüm HTTP gönderenlerinin ve alıcılarının minimum 8000 sekizli istek satırı uzunluğunda desteklenmesi ÖNERİLİR.

... ve gerçek

Yani ne standartları söylüyorlar. İçin gerçeklik üzerinde bir makale vardı boutell.com bireysel tarayıcı ve sunucu uygulamaları destekleyecek neler tartışıldı (link İnternet Arşiv yedekleme gider). Yönetici özeti:

Çok uzun URL'ler genellikle bir hatadır. 2.000 karakterden uzun URL'ler en popüler web tarayıcılarında çalışmaz. Sitenizi İnternet kullanıcılarının çoğunluğu için çalışmaya niyetliyorsanız bunları kullanmayın.

(Not: Bu yazılmış bir makaleden bir alıntı 2006 , ama 2015 yılında daha uzun URL'ler IE azalan kullanım aracı yapmak ... çoğunluk için çalışmalarını Ancak, IE hala sınırlama yoktur.)

Internet Explorer sınırlamaları ...

IE8'in maksimum URL uzunluğu 2083 karakterdir ve IE9'un benzer bir limiti vardır .

IE10'u test ettim ve adres çubuğu sadece 2083 karakter kabul edecek. Bundan daha uzun bir URL'yi tıklayabilirsiniz , ancak adres çubuğunda yine de bu bağlantının yalnızca 2083 karakteri gösterilecektir.

Bir var IE Içselleri blogda güzel writeup buna arka planının girer.

IE11'in daha uzun URL'leri desteklediği karışık raporlar var - aşağıdaki yorumlara bakın. Bazı kişilerin sorunları bildirdiği göz önüne alındığında, genel tavsiye hala geçerlidir.

URL'ler <2048 karakter gibi arama motorları ...

Unutmayın site haritaları protokolü bir site mevcut sayfalar hakkında arama motorlarına bilgi vermenizi sağlar, bir URL'de 2048 karakter sınırı vardır. Site haritalarını kullanmayı düşünüyorsanız, sizin için bir sınır belirlenmiştir! (aşağıdaki Calin-Andrei Burloiu'nun cevabına bakınız)

Ayrıca, 2010'dan arama motorlarının tarayacağı ve dizine ekleyeceği maksimum URL uzunluğuyla ilgili bazı araştırmalar da var . Limitin, site haritası protokol spesifikasyonuna müttefik görünen 2047 karakter olduğunu buldular. Ancak, Google SERP aracının 1855 karakterden uzun URL'lerle başa çıkmayacağını da buldular .

CDN'lerin sınırları vardır

CDN'ler ayrıca URI uzunluğuna sınırlar getirir ve 414 Too long requestbu sınırlara ulaşıldığında a döndürür , örneğin:

(yorumlarda bu bilgileri sağladıkları için timrs2998'e verilen kredi)

Ek tarayıcı toplaması

Çok büyük bir LimitRequestLine ve LimitRequestFieldSize ile yapılandırılmış bir Apache 2.4 sunucusuna karşı aşağıdakileri test ettim .

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

Aşağıdaki Matas Vaitkevicius'un bu cevabına da bakınız.

Bu bilgi güncel mi?

Bu popüler bir soru ve orijinal araştırma ~ 12 yaşında olduğu için bunu güncel tutmaya çalışacağım: Ocak 2020'den itibaren tavsiye hala duruyor. IE11 muhtemelen daha uzun URL'leri kabul etse de, eski IE kurulumlarının yaygınlığı ve arama motoru sınırlamaları 2000 karakterlerin altında kalmanın en iyi genel politika olduğu anlamına gelir.


83
IE11'in 260 karakterden uzun URL'lere yer işareti koymayacağını unutmayın . Edge'in aynı sınırlamaya sahip olup olmadığından emin değilim.
Brian

10
Bugün IE11, URL'mi 2048 karakter olarak kesiyor.
AntiCZ

2
Orijinal soru: " Farklı tarayıcılarda bir URL'nin maksimum uzunluğu nedir ". Bu soruya cevap vermez, sadece IE için verir. İnsanlar web sitelerini farklı amaçlar için yaparlar, örneğin IE tarafından ASLA erişilmeyen dahili araçlar.
Skeets

13
2016'da Chrome'da basit bir komut dosyasından osx open komutunu kullanarak 260300 ascii karakterli bir url açabildim ve tüm karakterlerin sunucuya aktarıldığını doğrulayabildim. Tarayıcıdaki url, 32791 karakterle kesildi ve ... (% E2% 80% A6% E2% 80% A6)
Rob Dawson

22
@Paul Dixon Bu sitedeki soruları yanıtlarken yukarıda ve öteye gitmek isteyen insanları görmek gerçekten güzel. Tabii ki insanlar şu anki oy sayımının 3734 olduğu için minnettarlıklarını gösteriyorlar, ama teşekkür etmek istedim! :)
drognisep

170

Karşılaştığım en uzun URL'ler veri URL'leri

Google resim sonuçlarından örnek resim URL'si (11747 karakter)

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

36
Base64 kodlu bir jpeg'in teknik olarak bir URL olduğu gerçeğinden bahsediyor, çünkü veri olarak belirtildi: *. Geçerli bir URL olduğunu söylemek doğru olsa da, sorunun sorduğu şey bu değil.
Fitblip

54
... veya adres çubuğunuza yapıştırın.
Gras Double

108
Bu bir URL değil URL'dir.
mike jones

65
Bir veri URL'si "data:" protokolünü ve tanımlayıcıyı içerdiğinden, bu "dosyayı" LOCATE yapmak için ihtiyacınız olan her şeydir ("Dosya Sistemi" olası tüm dosyaların alanı olsa bile). Bu nedenle, aynı zamanda bir URI olan bir URL'dir. (Ama kesinlikle "URL değil")
MickLH

5
@DoubleGras Mac için Google Chrome, adres
çubuğuma


153

'a'Tarayıcı başarısız olana kadar parametreye eklemeye devam eden bu testi yazdım

C # bölümü:

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

Görünüm:

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

BÖLÜM 1

Chrome'da şunu buldum:

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

Sonra ile patladı:

HTTP Hatası 404.15 - Bulunamadı İstek filtreleme modülü, sorgu dizesinin çok uzun olduğu bir isteği reddedecek şekilde yapılandırılmıştır.

Internet Explorer 8 ve Firefox'ta aynı

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

BÖLÜM 2

Kolay moda geçtim applicationhost.config ve IISExpress ve web.configayarlarına ek sınırlar ekledimmaxQueryStringLength="32768" .

Chrome failed with message 'Bad Request - Request Too Long

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

7744 karakterden sonra.

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

3.BÖLÜM

Katma

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

ki bu hiç yardımcı olmadı. Sonunda yönlendireni başlıktan kaldırmak için kemancı kullanmaya karar verdim.

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

Hangi güzel yaptı.

Chrome: 15613 karaktere ulaştı. (Sanırım IIS için 16 bin limit)

Ve yine başarısız oldu:

<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 , iexplore.exe kilitlenmesiyle başarısız oldu.

Resim açıklamasını buraya girin

2505'ten sonra

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 Emülatörü

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

Yani, aslında, 512 karakter varsayım büyük ölçüde yanlış ^ _ ^ Test için teşekkürler. Asla artık param uzunluğu sorgu umurumda değil ..
Gogol

17
Bu kabul edilen cevap olmalı ... birincisi aslında her tarayıcı için soruların istediği zor sınırlar sağlamıyor.
GrayedFox

1
Safari'ye de bakmaya değer olabilir. Safari, istemci tarafından oluşturulan indirmeleri desteklemeyen tek tarayıcıdır. Geçici çözümler şunlardır: a) yeni bir pencerede bir BLOB URI'sini (bellek içi bir Blob'a işaret eden kısa, geçici bir URI) açın, b) yeni bir pencerede base-64 kodlanmış bir veri URI'sini açın (çok uzun olabilir, ancak MIME yazmayı destekler). Ayrıntılar burada: github.com/eligrey/FileSaver.js/issues/12
Mat Gessel

@Vaitkevicius Bir boşluğun (% 20) bir karakter veya 3 olarak sayıldığını biliyor musunuz?
Haz711

1
@Haziran nerede bağlıdır ... F12 tuşuna basın ve konsola takip yapıştırın console.log("%20".length +" "+decodeURI("%20").length)bu açıklamalı
Matas Vaitkevicius

96

Gerçekten evrensel bir maksimum URL uzunluğu yoktur. Maksimum uzunluk, yalnızca istemci tarayıcısının desteklemeyi seçtiği şeyle belirlenir, bu da büyük ölçüde değişir. 2.083 sınırı yalnızca Internet Explorer'da bulunur (7.0'a kadar olan tüm sürümler). Firefox ve Safari'deki maksimum uzunluk sınırsız gibi görünüyor, ancak yaklaşık 65.000 karaktere ulaşan URL'lerde kararsızlık oluşuyor. Opera'nın herhangi bir maksimum URL uzunluğu yok gibi görünüyor ve son derece uzun uzunluklarda kararsızlığa maruz kalmıyor.


8
Eğer kararsızlık 65k civarındaysa, muhtemelen 65535 civarındadır (2 ^ 16-1). Belki kısa i kullanarak karakterler arasında döngü? Sadece bir düşünce. 65k + o_o için hangi URL'yi test ettiklerini merak ediyorum ;;
Garet Claborn

5
Bu cevaplar, somut cevaplar sağladığı için kabul edilmesi gereken cevaplardır: IE için 2k, Safari / Firefox için 65k, Opera için "daha fazla".
eis

Merak ediyorum. 65k URL bir veri şeması URI'si mi yoksa klasik anlamda bir URL mi?
SaAtomic

81

Apple platformlarında (iOS / macOS / tvOS / watchOS), Swift'in kaynak kodundaki bu yorumda görüldüğü gibi , sınır 2 GB uzunluğunda bir URL şeması olabilir :

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

İOS'ta, 300+ MB uzunluğunda bir URL'nin bile kabul edildiğini test ettim ve onayladım. Objective-C'de böyle uzun bir URL deneyebilirsiniz:

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

Ve başarılı olursa yakalayın:

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

74
Sadece bir 300MB URL denemek için bir +1 hak ediyorsun
Дамян Станчев

3
iOS kendi başına bir tarayıcı değil. Bu iOS için Safari'de miydi?
Randall

6
@Randall şemaları işletim sistemi tarafından işlenir ve daha sonra bunları açabilen uygulamaya gönderilir. Böylece Safari de dahil olmak üzere iOS'taki tüm uygulamalar uzun URI'ları işleyebilir.
Cœur

1
Açıklama için teşekkürler. Muhtemelen, bu keyfi bir uygulamanın (örneğin Tor destekli bir tarayıcı) kendi uzunluk sınırlamasını getirmesini engellemez, değil mi?
Randall

1
@Randall doğru ama neden herkes bunu yapsın ...
Xander

70

URI RFC (hangi URL'ler bir alt kümesidir) ancak, gelmez, maksimum uzunluğu tanımlamıyor tavsiye URI hostname kısmı (varsa) değil uzunluğu 255 karakterden uzun olduğunu:

URI üreticileri, DNS kullanımı hemen belli olmasa bile, DNS sözdizimine uygun adları kullanmalı ve bu adları 255 karakterden daha uzun olmamalıdır.

Yine de diğer yayınlarda belirtildiği gibi, bazı tarayıcıların URL uzunluğu konusunda pratik bir sınırlaması vardır.


55

HTTP 1.1 spesifikasyonu diyor ki:

HTTP'deki URI'ler
, kullanım bağlamlarına bağlı olarak, mutlak formda veya bilinen bazı temel URI'lara göre temsil edilebilir [11]. İki
form, mutlak URI'lerin her zaman
bir şema adı ve ardından iki nokta üst üste işareti ile başlamasıyla ayırt edilir .
URL sözdizimi ve anlambilimi hakkında kesin bilgi için , bkz. "Tekdüzen Kaynak Tanımlayıcıları (URI): Genel Sözdizimi ve Anlambilimi", RFC 2396 [42] (RFC 1738 [4] ve RFC 1808 [11] yerine geçer). Bu belirtim, bu belirtimden "URI-başvurusu"
, "mutlakURI", "göreliURI", "bağlantı noktası", "ana bilgisayar", "abs_path", "rel_path" ve "yetki" tanımlarını benimser
.

HTTP protokolü,
bir URI'nin uzunluğuna herhangi bir a priori sınırı koymaz. Sunucular, sundukları herhangi bir kaynağın URI'sini işleyebilmelidir ZORUNLU ve bu URI'leri oluşturabilecek GET tabanlı formlar sağlarlarsa sınırsız uzunlukta URI'leri işleyebilmelidir. *
Bir sunucu 414 döndürmelidir URI'nin sunucunun işleyebileceğinden daha uzun olması durumunda (bkz. bölüm 10.4.15).

Not: Bazı eski istemci veya proxy uygulamaları bu uzunlukları doğru şekilde desteklemeyebileceğinden, sunucular 255 baytın üzerindeki URI uzunluklarına bağlı olma konusunda dikkatli olmalıdır.

@Brian tarafından belirtildiği gibi, HTTP istemcilerinin (örn. Tarayıcılar) kendi sınırları olabilir ve HTTP sunucuları farklı sınırlara sahip olacaktır.


47

Microsoft Destek , "Internet Explorer'da maksimum URL uzunluğu 2.083 karakterdir" diyor.

IE'nin URL'lerde bundan daha uzun sorunları var. Firefox, 4k karakterlerle> iyi çalışıyor gibi görünüyor.


39

Gelen URL'ye UI olarak Jakob Nielsen tavsiye eder:

Web'in sosyal arayüzü, kullanıcılar Web sayfalarını birbirlerine önermek istediğinde e-postaya dayanır ve e-posta, kullanıcıların yeni sitelere ulaşmasının en yaygın ikinci yoludur (arama motorları en yaygın olanıdır): site 78 karakterden daha kısa olduğundan satır beslemesini kapatamazlar.

Bu maksimum değil, ancak URL'nizin paylaşılmasını istiyorsanız bunu pratik bir maksimum olarak değerlendiririm.


3
Acaba "78" nereden geliyor? Belki de orijinal 1999 makalesi, insanların e-postalarını 80x24 terminal pencerelerinde okuduğu varsayımı altında yazılmıştır? Yine de, iyi tavsiye!
Jon Schneider

3
İyi. IBM delikli kartlar da 80 sütundur. İki karakter bir satır başı ve bir satır beslemesi tarafından alındığında 78 elde edersiniz.
Paul Morgan

1
Haha. :-) Aslında yorumumda 1981 dönemli 80x25 CGA monitörlere atıfta bulunmayı düşünüyordum, ama daha da geriye ulaştınız! ... delikli kart dönemi için etrafta değildim, ama 80 bayt mı, yoksa sadece 80 bit mi?
Jon Schneider

1
Tam olarak bir bayt (8 bit) değil. Her sütuna bir karakter kodladı.
Paul Morgan

3
@JonSchneider - 78 oldukça spesifiktir ve metnin okunabilirliği (Nielsen'in geçmişi göz önüne alındığında kullanılabilirlik perspektifinden) ile ilgilidir, ki bu en iyi 50-60 ile maksimum 75 arasındadır .
Jay Rainey

36

Web yöneticilerinin arama motorlarını sitelerindeki sayfalar hakkında (Web Yöneticisi Araçları'nda Google tarafından da kullanılır) bilgilendirmeleri için bir yol olan Site Haritaları protokolü , 2048 karakterden daha az URL'leri destekler. Bu nedenle, Arama Motoru Optimizasyonu için bu özelliği kullanmayı planlıyorsanız, bunu dikkate alın.


Bu biraz kafa karıştırıcı. Site Haritası protokolleri "2048 karakterden az URL'leri destekler." Example.com gibi bir sitenin işe yarayacağını hayal ettim. Bu soru maksimum hakkında daha fazla olduğunu düşünüyorum?
HoldOffHunger

19

ASP.NET 2 ve SQL Server raporlama hizmetleri 2005 2028 bir sınırı var. Bunu zor yoldan öğrendim, nerede dinamik URL jeneratör benim bu noktadan sonra bir rapora bazı parametreler üzerinden geçmek olmaz. Bu Internet Explorer 8 altındaydı.


18

IIS'nin 16K sınırı varken, Internet Explorer neden yalnızca 2K sınırıdır? Bunun mantıklı olduğunu düşünmüyorum.

Bu yüzden Ajax istek URL boyutu sınırları hakkında bir deneme başlatmak istiyorum.

Tomcat HTTP bağlayıcısının maxHttpHeaderSize = "1048576" ayarını yaptım. Ve çok uzun bir URL hazırladı.

Sonra aşağıdaki gibi uzun URL ile bir istek gönderirim:

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

jQuery raporları yapıldı. Tomcat, istenen URL'nin 1048015 bayt olduğunu bildirdi. Chrome 50 ve Internet Explorer 11 ile test edildi.

Dolayısıyla, Web tarayıcıları Ajax istekleri gönderirken URL'nizi bilerek kesmez veya sınırlamaz.


4
Bir web sunucusuna yapılan tüm isteklerin bir tarayıcı aracılığıyla yapılmadığını düşündüğünüzde Internet Explorer ve IIS arasındaki fark mantıklıdır.
TroySteven

15

Sınır istek satırı yönergesi bir URL'nin maksimum uzunluğunu belirler. Varsayılan olarak, size çok fazla alan sağlayan 8190 olarak ayarlanmıştır. Ancak diğer sunucular ve bazı tarayıcılar uzunluğu daha fazla sınırlar.

Tüm parametreler URL satırına iletildiğinden, gizli alanların şifresindeki öğeler de elbette URL'de görüntülenir. Her iki mobil cihaz da gerçek güvenlik önlemleri için kullanılmamalı ve en iyi ihtimalle kozmetik güvenlik olarak düşünülmemelidir.


11

SharePoint 2007, 2010 ile deneyimim var ve bu durumda SharePoint'in sunucu tarafından oluşturabileceğiniz uzunluk URL'sinin bir sınırı var, bu yüzden çoğunlukla bağlı, 1) istemci (tarayıcı, sürüm ve işletim sistemi) ve 2) sunucu teknolojisi, IIS, Apache vb.


1
SharePoint web URL'lerini dosya yolları olarak gösterdiği için ayrı bir sınırlama ile çalışır: Windows dosya yolu uzunluğu sınırı 260 karakter (veya API kullanırken 248 karakter). Bu sınır hakkında daha fazla bilgi için, buradaki "Maksimum Yol Uzunluğu Sınırlaması" bölümüne bakın
18'de Thriggle

10

Görünüşe göre Chrome en azından bu sınırı yükseltti. Yer işaretine 20.000 karakter yapıştırdım ve aldı.


1

HTTP spesifikasyonuna göre, bir URL'nin uzunluğu için bir sınır yoktur. URL'lerinizi 2048 karakterin altında tutun; bu URL'lerin tüm istemciler ve sunucu yapılandırmalarında çalışmasını sağlar. Ayrıca, URL'ler gibi arama motorları yaklaşık 2000 karakterin altında kalır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.