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 request
bu 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.