html'de gizli bir girişin uzunluğu için maksimum boyut var mı?


93

başka bir deyişle:

<input type="hidden" value="Can I put as much as I want in here, or is there a limit?" />

ve eğer öyleyse, nedir?


7
Şimdiye kadar gördüğüm en iyi soru sorma yöntemi.
Andrés Morales

Yanıtlar:


60

Formu gönderdiğiniz yönteme bağlıdır.

GET ile, tarayıcı ve sunucu sınırlamalarına bağlı olarak genel olarak kabul edilen 1-2 kilobaytlık bir sınır vardır.

POST ile, tarayıcıda teknik bir sınır yoktur, ancak genellikle sunucu tarafında bir sınır vardır - bkz. Apache'ler LimitRequestBody, PHP'ler post_max_sizevb.


Metin giriş alanları için aşağıda @naugtur tarafından belirtilen sorunlara dikkat edin - en azından farklı tarayıcılar tarafından uygulanan teknik sınırlar söz konusudur.
Oliver

Biraz güncel olan 3 tarayıcıda (IE9, FF 10 ESR, Chrome 24) bazı testler yaptım ve hepsi 100KB gizli giriş değerlerini sorunsuz bir şekilde sundu. Dolayısıyla, metin girdileriyle ilgili sorunlar burada geçerli görünmüyor.
Oliver

Peki ya textareas?
Francisco Corrales Morales

@FranciscoCorralesMorales Giriş alanının ne tür olduğu önemli değil - önemli olan sonuç, gönderdiğiniz tüm verilerin toplamıdır
Pekka

Safari'nin gizli girişi kestiğini buldum. Bir metin alanı kullanmak sorunu çözdü.
Brendon Muir

29

Uyarı! <input type="text">Metin 65535'ten uzun olduğunda sorun yaşadım (maksimum işaretli int boyutu)

Metni yapıştırmak tuhaf bir içerik taşmasına neden oluyor gibi görünüyor. Webkit'te görüldü.

[Düzenle]

GET talebinin boyutu Pekka'nın yazdığı şekilde tam olarak sınırlı değildir. Bütün GET sorgu dizesi için 2083 bayt bir sınırı vardır address?paramsiçinde Internet Explorer yalnızca Diğer tarayıcılarda FireFox örneğin 100 KB üzerinde GET sorgularını gönderme ile, pratikte hiçbir sınır yoktur. Açıkçası, sunucunun bunlara izin vermesi gerekiyor.

Belgelerde kapsanmadığından, diğer tarayıcıların sınırlarını bilmek için test etmek gerekir. IE: http://support.microsoft.com/kb/208427


8
+1 Bu jsFiddle'ı, bir giriş değerini çok uzun bir dizeye ayarladığınızda ne olacağını test etmek için oluşturdum: jsfiddle.net/3TVPL/6 65537 karakter uzunluğunda bir dizi kullandım. Testlerimde Crome 24.0.1312 ve Windows için Safari 5.1.7, değeri bu dizeye ayarladıktan sonra giriş kutularını boş olarak gösteriyor. Dizeyi 65536 karakter uzunluğuna indirirsem, Chrome uygun boş olmayan değeri gösteriyor. Diğer tarayıcılar (Firefox 17, IE8, IE9, IE10, Opera 12.12) çok daha uzun süre dizelerle ilgili herhangi bir sorun yaşamadı (yaklaşık 1.2 Mb dizeye kadar yükseldim)
beluga

@beluga harika iş. performans hakkında herhangi bir fikrin var mı? Zayıf makinemde uzun bir bekleyiş oldu. Sanırım bu yüzden webkit bunu oluşturmuyor.
naugtur

Belki iyi nokta. Şu anda herhangi bir performans testi yapmadım. İş yerinde oldukça güçlendirilmiş bir makinem var ve tarayıcıların hiçbirinde herhangi bir gecikme fark etmedim.
beluga

FF'mi 5 dakika kadar kullanılamaz hale getirdi. Bir form alanına bu kadarını koymak zaten iyi bir fikir değil :)
naugtur

Mobil tarayıcılar ve proxy'ler de gizli alanları kesebilir
George Filippakos
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.