HTTP POST'un gönderilebileceği veri boyutunda herhangi bir spesifikasyon sınırı olmadığını duydum. Bu doğru mu yoksa gerçekten yüksek bir limit mi var?
Yanıtlar:
DÜZENLEME (2019) Bu cevap artık oldukça gereksiz ancak daha alakalı bilgiler içeren başka bir cevap var.
Daha çok web sunucusuna ve web tarayıcısına bağlıdır:
İnternet gezgini Tüm sürümler 2GB-1
Mozilla Firefox Tüm sürümler 2GB-1
IIS 1-5 2GB-1
IIS 6 4GB-1
IIS varsayılan olarak yalnızca 200 KB'yi desteklese de, metatabanının bunu artırmak için değiştirilmesi gerekir.
http://www.motobit.com/help/scptutl/pa98.htm
POST yönteminin kendi başına veri boyutu konusunda herhangi bir sınırı yoktur.
Sanki önemli olan tek web sunucusuymuş gibi, tüm yanıtların IIS hakkında konuşması oldukça şaşırtıcı. Hatta 2010 yılında geri sorulduğu zaman, Apache arasındaki vardı % 60 ve pazar payı% 70 . Her neyse,
min(serverMaximumSize, clientMaximumSize)
.Daha popüler HTTP sunucularının bazıları için POST gövde boyutları şunlardır:
HTTP protokolünün kendisine göre bir sınır yoktur, ancak uygulamaların pratik bir üst sınırı olacaktır. POST kullanarak Apache'ye 4 GB'yi aşan verileri gönderdim, ancak bazı sunucuların o anda 4 GB sınırı vardı.
LimitRequestBody
direktife bir üst sınır getirmeye başladılar .
POST, bir sunucuya rastgele uzunlukta veri gönderilmesine izin verir, ancak zaman aşımına / bant genişliğine vb. Bağlı sınırlamalar vardır.
Temel olarak, çok fazla veri göndermenin uygun olmadığını varsaymak daha güvenlidir .
Bu (artık silinmiş) makaleye göre, farklı IIS web sunucuları 'başlıkta' farklı miktarlarda veri işleyebilir; http://classicasp.aspfaq.com/forms/what-is-the-limit-on-form/post-parameters.html ;
POST aracılığıyla iletebileceğiniz FORM öğelerinin sayısında bir sınır olmadığını, yalnızca tüm ad / değer çiftlerinin toplam boyutunda bir sınır olmadığını unutmayın. GET, 1024 karakter kadar düşük olmakla birlikte, POST verileri IIS 4.0'da 2 MB ve IIS 5.0'da 128 KB ile sınırlıdır. Her ad / değer, SGML spesifikasyonuna göre 1024 karakterle sınırlıdır. Elbette bu, enctype = 'multipart / form-data' kullanılarak yüklenen dosyalar için geçerli değildir ... IIS 5.0 kullanarak 90 - 100 MB aralığındaki dosyaları yüklerken, sunucuyu artırma zorunluluğunun yanı sıra hiçbir sorun yaşamadım. ScriptTimeout değeri hem de sabrım!
Geliştirmekte olduğum bir uygulamada, yaklaşık 2KB'lik bir POST sınırı gibi görünen bir şeye rastladım. Parametreleri gövdeden geçirmek yerine yanlışlıkla URL'ye kodladığım ortaya çıktı. Dolayısıyla, orada bir sorunla karşılaşırsanız, URL'ye kodlanmış olarak gönderebileceğiniz POST verilerinin boyutunda kesinlikle çok küçük bir sınır vardır.
HTTP'nin bir üst sınırı olmayabilir, ancak web sunucularının bir üst sınırı olabilir. ASP.NET'te varsayılan 4 MB kabul sınırı vardır, ancak siz (geliştirici / web yöneticisi) bunu daha yüksek veya daha düşük olacak şekilde değiştirebilirsiniz.