क्या HTTP POST असीम हो सकता है?


97

मैंने सुना है कि HTTP POST की डेटा साइज़ में कोई विनिर्देशन सीमा नहीं है जिसे इसके द्वारा भेजा जा सकता है। क्या यह सच है या क्या वास्तव में कुछ उच्च सीमा है?


जवाबों:


75

EDIT (2019) यह उत्तर अब बहुत बेमानी है, लेकिन अधिक प्रासंगिक जानकारी के साथ एक और उत्तर है

यह वेब सर्वर और वेब ब्राउज़र पर निर्भर करता है:

इंटरनेट एक्सप्लोरर सभी संस्करणों 2GB-1
मोज़िला फ़ायरफ़ॉक्स सभी संस्करणों 2GB-1
IIS 1-5 2GB-1
IIS 6 4GB-1

हालाँकि IIS केवल डिफ़ॉल्ट रूप से 200KB का समर्थन करता है, मेटाबेस को इसे बढ़ाने के लिए संशोधन की आवश्यकता होती है।

http://www.motobit.com/help/scptutl/pa98.htm

स्वयं POST विधि में डेटा के आकार की कोई सीमा नहीं है।


Metabase.XML का उल्लेख करने के लिए upvote और मैंने फ़ाइल अपलोड आकार सीमा को बदलने के लिए विभिन्न तरीके सूचीबद्ध किए हैं क्योंकि यह उपयोगी हो सकता है।
दुरई अमुथन

कमांड प्रॉम्प्ट में निम्नलिखित कमांड दर्ज करने से फ़ाइल अपलोड आकार सीमा बढ़ाने में मदद मिलती है। "cscript C: \ inetpub \ adminscripts \ adsutil.vbs सेट w3svc / ASPMaxRequestEntityAllowed 1048480" (बाइट्स में) संदर्भ: serverintellect.com/support/iis/uploaddownload-size-lamits -इसी ६
दुराई अमूथन।

या सी में Metabase.xml लगता है: \ windows \ sytem32 \ inetserv \ पथ और संपादित लेकिन यह सुनिश्चित कर लें प्रत्यक्ष मेटाबेस संपादित सक्षम enabled.reference है: banmanpro.com/support2/file_upload_limits.asp
दुरई Amuthan.H

या अपने web.config में, अपने system.web <httpRuntime निष्पादन समय = "54000" maxRequestLength = "512000" /> weblogs.asp.net/mhawley/archive4/05/11/12982424.aspx
Durai के

वर्तमान (2019) वेब सर्वरों के लिए, यह उत्तर देखें ।
डैन डैस्कलेस्क्यू

76

काफी आश्चर्यजनक है कि सभी उत्तर IIS के बारे में कैसे बात करते हैं, जैसे कि वे एकमात्र वेब सर्वर थे जो मायने रखते थे। 2010 में भी जब सवाल पूछा गया था, तो अपाचे के पास 60% और 70% बाजार हिस्सेदारी थी । वैसे भी,

  • HTTP प्रोटोकॉल एक सीमा निर्दिष्ट नहीं करता है।
  • POST विधि GET विधि की तुलना में कहीं अधिक डेटा भेजने की अनुमति देती है, जो कि URL लंबाई - 2KB के बारे में सीमित है ।
  • अधिकतम POST अनुरोध बॉडी का आकार HTTP सर्वर पर कॉन्फ़िगर किया गया है और आमतौर पर
    1MB से 2GB तक होता है
  • HTTP क्लाइंट (ब्राउज़र या अन्य उपयोगकर्ता एजेंट) की अपनी सीमाएँ हो सकती हैं। इसलिए, अधिकतम POST बॉडी अनुरोध आकार है min(serverMaximumSize, clientMaximumSize)

अधिक लोकप्रिय HTTP सर्वरों में से कुछ के लिए POST बॉडी साइज इस प्रकार हैं:


4
उन उत्तरों में से जो एक वेबसर्वर दो का उल्लेख करते हैं आईआईएस और एक का उल्लेख करते हैं अपाचे। वैसे भी, मैंने आपके प्रति साइनपोस्ट के लिए मेरे उत्तर को संपादित किया है जो अधिक पूर्ण और अद्यतित है।
डेविड निएले

3
शुक्रिया @DavidNeale! उसके लिए एक बैज होना चाहिए :) मैं इस उत्तर को अपडेट रखने की कोशिश करूंगा। बस nginx के लिए अधिकतम जोड़ा।
डैन डैस्कलेस्क्यू

इसके बारे में: "GET विधि से अधिक डेटा, जो कि URL लंबाई द्वारा सीमित है - 2KB के बारे में।" हेडर के बारे में क्या? प्रति इस पोस्ट ऐसा लगता है कि हेडर 8-16KB के बारे में के लिए अनुमति देते हैं।
हंस वॉन

27

HTTP प्रोटोकॉल के अनुसार कोई सीमा नहीं है, लेकिन कार्यान्वयन में एक व्यावहारिक ऊपरी सीमा होगी। मैंने पोस्ट अपाचे का उपयोग करके 4 जीबी से अधिक डेटा भेजा है, लेकिन कुछ सर्वरों की उस समय 4 जीबी की सीमा थी।


क्या 4GB अभी भी अपाचे के लिए अधिकतम है? मैंने पाया कि यह 2GB का है।
डेन डैस्कलेस्कु

@DanDascalescu: मुझे नहीं पता, मैंने लंबे समय में ऐसा नहीं किया है। शायद उन्होंने LimitRequestBodyनिर्देश पर एक ऊपरी सीमा को लागू करना शुरू कर दिया ।
ग्रेग हेविल

6

POST एक सर्वर को भेजे जाने के लिए डेटा की एक मनमानी लंबाई की अनुमति देता है, लेकिन टाइमआउट / बैंडविड्थ आदि के आधार पर सीमाएं हैं।

मुझे लगता है कि मूल रूप से, यह मान लेना सुरक्षित है कि बहुत सारा डेटा भेजना ठीक नहीं है


2
क्या टाइमआउट और इस तरह के लिए कितना खतरनाक है अंगूठे के कोई नियम?
vextorspace

3

विभिन्न आईआईएस वेब सर्वर 'हेडर' में अलग-अलग मात्रा में डेटा संसाधित कर सकते हैं, इस (अब हटाए गए) लेख के अनुसार; http://classicasp.aspfaq.com/forms/what-is-the-limit-on-form/post-parameters.html ;

ध्यान दें कि आपके द्वारा पोस्ट किए जाने वाले FORM तत्वों की संख्या की कोई सीमा नहीं है, लेकिन केवल सभी नाम या मूल्य जोड़े के कुल आकार पर। जबकि GET 1024 वर्णों तक सीमित है, POST डेटा IIS 4.0 पर 2 MB और IIS 5.0 पर 128 KB तक सीमित है। प्रत्येक नाम / मूल्य एसजीएमएल कल्पना द्वारा लगाए गए 1024 वर्णों तक सीमित है। बेशक यह enctype = 'multipart / form-data' का उपयोग करके अपलोड की गई फ़ाइलों पर लागू नहीं होता है ... मुझे IIS 5.0 का उपयोग करते हुए सर्वर - scriptTimeout मान बढ़ाने के लिए अलग से 90 - 100 MB रेंज में फ़ाइलों को अपलोड करने में कोई समस्या नहीं हुई है साथ ही साथ मेरा धैर्य!


1
अच्छा संपादन
@Matt

1

एक आवेदन में मैं विकसित कर रहा था मैं 2KB के बारे में एक POST सीमा के रूप में दिखाई दिया। यह पता चला है कि मैं गलती से मापदंडों को URL में एन्कोडिंग कर रहा था बजाय उन्हें शरीर में पारित करने के। इसलिए यदि आप वहां किसी समस्या में चल रहे हैं, तो निश्चित रूप से POST डेटा के आकार की एक बहुत छोटी सीमा है जिसे आप URL में एन्कोडेड भेज सकते हैं।


0

HTTP की ऊपरी सीमा नहीं हो सकती है, लेकिन webservers में एक हो सकता है। ASP.NET में 4 MB की डिफ़ॉल्ट स्वीकार-सीमा होती है, लेकिन आप (डेवलपर / वेबमास्टर) इसे उच्च या निम्नतर कर सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.