Http मल्टीपार्ट अनुरोध क्या है?


300

मैं कुछ समय से iPhone एप्लिकेशन लिख रहा हूं, सर्वर पर डेटा भेज रहा हूं, डेटा प्राप्त कर रहा हूं (HTTP प्रोटोकॉल के माध्यम से), इसके बारे में बहुत अधिक सोचने के बिना। अधिकतर मैं सैद्धांतिक रूप से प्रक्रिया से परिचित हूं, लेकिन मैं जिस भाग से परिचित नहीं हूं वह HTTP मल्टीपार्ट अनुरोध है। मैं इसकी मूल संरचना को जानता हूं, लेकिन इसका मूल मुझे घेर लेता है।

ऐसा लगता है कि जब भी मैं सादे पाठ (जैसे फोटो, संगीत) से कुछ अलग भेज रहा हूं, मुझे एक मल्टीपार्ट अनुरोध का उपयोग करना होगा। क्या कोई मुझे संक्षेप में समझा सकता है कि इसका उपयोग क्यों किया जाता है और इसके क्या फायदे हैं?

यदि मैं इसका उपयोग करता हूं, तो इस तरह से फ़ोटो भेजने का बेहतर तरीका क्यों है?


1
जानकारी के लिए निम्न लिंक देखें: http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.2
zargarf

जवाबों:


286

एक HTTP मल्टीपार्ट अनुरोध एक HTTP अनुरोध है जो HTTP क्लाइंट एक HTTP सर्वर पर फाइल और डेटा भेजने के लिए निर्माण करता है। यह आमतौर पर ब्राउज़र और HTTP क्लाइंट द्वारा सर्वर पर फाइल अपलोड करने के लिए उपयोग किया जाता है।


4
बस जोड़ना चाहते थे कि मल्टीपर्ट फॉर्म डेटा फ़ील्ड क्रम में भेजे जाते हैं । यह कुछ स्पष्ट नहीं है - मैंने यहां लिंक की एक सूची जोड़ी: github.com/balderdashy/skipper/blob/master/… यदि मुझे PhantomJS / webkit का उपयोग करके एक परीक्षण मामले को एक साथ रखने के लिए कुछ समय मिलता है, तो मैं जोड़ूंगा वहाँ के रूप में अच्छी तरह से लिंक। ब्राउज़र्स कल्पना के इस हिस्से का पालन करते हैं, यहां तक ​​कि IE6 तक।
mikermcneil

88
हार्ड भाग को समझा जाता है कि क्यों इसे कुछ अधिक स्पष्ट के बजाय मल्टीपार्ट अनुरोध कहा जाता है, जैसे फ़ाइल अपलोड अनुरोध
राफेल Eyng

28
ओपी एक दार्शनिक दृष्टिकोण और उत्तर चाहता था। यह उत्तर "क्यों" भाग नहीं समझा रहा है। यह "क्या" भाग के बारे में अधिक है। मैं नीच का बहुत बड़ा प्रशंसक नहीं हूं, लेकिन मेरा तर्क है कि यह जवाब नहीं है जो ओपी चाहता था और मैंने खोजा।
सईद नेमाटी

6
सामग्री प्रकार "एप्लिकेशन / x-www-form-urlencoded" बाइनरी डेटा या गैर-ASCII वर्णों वाले पाठ को बड़ी मात्रा में भेजने के लिए अक्षम है। सामग्री प्रकार "मल्टीपार्ट / फॉर्म-डेटा" का उपयोग उन प्रपत्रों को प्रस्तुत करने के लिए किया जाना चाहिए जिनमें फाइलें, गैर-एएससीआईआई डेटा और बाइनरी डेटा शामिल हैं। मूल स्रोत - w3.org/TR/html401/interact/forms.html#h-17.13.4.2
आदित्य अग्रवाल


22

जैसा कि आधिकारिक विनिर्देश ( https://www.w3.org/Protocols/rfc1341/7_2_Multipart.html ) कहता है, " एक ही शरीर में डेटा के एक या अधिक सेट संयुक्त होते हैं "। इसलिए जब फ़ोटो और संगीत को मल्टीपार्ट संदेश के रूप में प्रश्न में वर्णित किया जाता है, तो संभवत: कुछ सादा पाठ मेटाडेटा भी जुड़ा होता है, इस प्रकार विभिन्न प्रकार के डेटा (बाइनरी, टेक्स्ट) वाले अनुरोध को बनाते हैं, जो मल्टीपार्ट के उपयोग को दर्शाता है।


2
मुझे नहीं लगता कि ऐसा है। किसी छवि को अपलोड करते समय, अनुरोधित निकाय में संपूर्ण छवि (मेटाडेटा सहित) डेटा का एक सेट होगी । यह अभी भी एक मल्टीपार्ट अनुरोध है, भले ही शरीर में सिर्फ एक हिस्सा हो। आप एक साथ कई फाइलें अपलोड करने का अनुरोध भी कर सकते हैं।
डारियो सीडल

1
@DarioSeidl मानक मान लेता है कि आप एक वेबफॉर्म से फ़ाइल अपलोड सबमिट कर सकते हैं, जिसमें फ़ाइल अपलोड के अलावा अन्य डेटा फ़ील्ड शामिल हो सकते हैं। उदाहरण के लिए, मूल फ़ाइल नाम के अतिरिक्त, उपयोगकर्ता में विवरण शामिल हो सकता है। मल्टीपार्ट जेनेरिक बाइनरी ब्लब्स को भी संभालता है जो एक विशेष मूल "फ़ाइल" की अवधारणा से डिस्कनेक्ट हो जाते हैं।
आयनोकॉस्ट ब्रिघम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.