डिफ़ॉल्ट रूप HTTP विधि क्या है?


147

जब किसी विधि को निर्दिष्ट किए बिना HTML फॉर्म जमा किया जाता है, तो डिफ़ॉल्ट HTTP विधि का क्या उपयोग किया जाता है? GET या POST?

क्या यह व्यवहार कभी HTML मानकों के बीच बदल गया है?

यदि संभव हो तो कृपया W3C मानक दस्तावेज़ का हवाला दें।


1
यहाँ पहले से ही शानदार ढंग से उत्तर दिया गया है (W3C कल्पना और सभी के साथ): stackoverflow.com/questions/2225735/…
Pekka

जवाबों:


171

यह GET है।

एक नज़र W3C Superceded अनुशंसा 17.3 FORM तत्व को लें

अंश:

<!ATTLIST FORM
  %attrs;                              -- %coreattrs, %i18n, %events --
  action      %URI;          #REQUIRED -- server-side form handler --
  method      (GET|POST)     GET       -- HTTP method used to submit the form--
  enctype     %ContentType;  "application/x-www-form-urlencoded"
  accept      %ContentTypes; #IMPLIED  -- list of MIME types for file upload --
  name        CDATA          #IMPLIED  -- name of form for scripting --
  onsubmit    %Script;       #IMPLIED  -- the form was submitted --
  onreset     %Script;       #IMPLIED  -- the form was reset --
  accept-charset %Charsets;  #IMPLIED  -- list of supported charsets --
  >

अच्छा पढ़ा

HTML फॉर्म में GET और POST के तरीके - क्या अंतर है?



9

यदि निर्दिष्ट नहीं है, तो डिफ़ॉल्ट GET है। मुझे कोई संकेत नहीं दिखता कि यह व्यवहार कभी अलग रहा है। और यह समझ में आता है कि GET डिफ़ॉल्ट है, क्योंकि यह निर्दिष्ट करता है कि साइड इफेक्ट्स के बिना कार्यों के लिए विधि का उपयोग किया जाना चाहिए।

http://www.faqs.org/faqs/www/cgi-faq/section-37.html

Http://www.w3.org/TR/html401/interact/forms.html#h-17.3 से नागरिक :

विधि = get | पोस्ट [CI]
यह विशेषता निर्दिष्ट करती है कि फॉर्म डेटा सेट को सबमिट करने के लिए HTTP विधि का उपयोग किया जाएगा। संभावित (केस-असंवेदनशील) मान " get" (डिफ़ॉल्ट) और " post" हैं। उपयोग जानकारी के लिए फ़ॉर्म सबमिट पर अनुभाग देखें।

17.13.1 फॉर्म जमा करने
की विधि FORMतत्व की विशेषता , प्रसंस्करण एजेंट को फॉर्म भेजने के लिए उपयोग की जाने वाली HTTP विधि को निर्दिष्ट करती है। यह विशेषता दो मान ले सकती है:

  • get: HTTP "get" विधि के साथ, फॉर्म डेटा सेट को यूआरआई द्वारा एक्शन विशेषता (प्रश्नवाचक चिह्न ("?") सेपरेटर के रूप में) से जोड़ा जाता है और यह नया यूआरआई प्रोसेसिंग एजेंट को भेजा जाता है।

  • पोस्ट: HTTP "पोस्ट" विधि के साथ, फॉर्म डेटा सेट को फॉर्म की बॉडी में शामिल किया जाता है और प्रोसेसिंग एजेंट को भेजा जाता है।

"प्राप्त करें" विधि का उपयोग तब किया जाना चाहिए जब फॉर्म idempotent होता है (यानी, कोई साइड-इफेक्ट नहीं होता है)। कई डेटाबेस खोजों के कोई दृश्य दुष्प्रभाव नहीं होते हैं और "प्राप्त" विधि के लिए आदर्श अनुप्रयोग बनाते हैं।



0

(फुलर जवाब, कार्रवाई और enctype के बारे में भी)

HTML फॉर्म का डिफ़ॉल्ट 'तरीका', 'एक्शन' और 'enctype', अगर वे निर्दिष्ट नहीं हैं , तो
GET, करंट URL और application/x-www-form-urlencodedक्रमशः हैं।
(यानी, डिफ़ॉल्ट रूप से, एक फॉर्म इनपुट किए गए मापदंडों के साथ वर्तमान पृष्ठ का अनुरोध करता है।)

यह व्यवहार कभी नहीं बदला है, 'कार्रवाई' को छोड़कर (HTML 4 में इसकी आवश्यकता थी)। उद्धरण:

विधि: " विधि विशेषता के लिए अनुपलब्ध मान डिफ़ॉल्ट है ... GET स्थिति।"
कार्रवाई:

किसी तत्व की कार्रवाई तत्व के निर्माण की विशेषता का मूल्य है, यदि तत्व एक सबमिट बटन है और इस तरह की एक विशेषता है, या इसके फॉर्म के मालिक की कार्रवाई विशेषता का मूल्य है, अगर इसमें एक है, या फिर खाली स्ट्रिंग है। <...> यदि क्रिया रिक्त स्ट्रिंग है, तो कार्रवाई को प्रपत्र दस्तावेज़ के दस्तावेज़ का URL होने दें ।

enctype: " enctype विशेषता के लिए अनुपलब्ध मान डिफ़ॉल्ट है ... application/x-www-form-urlencodedस्थिति।"

विधि: "संभावित (असंवेदनशील) मान 'प्राप्त' (डिफ़ॉल्ट) और 'पोस्ट' हैं।"
क्रिया: कोई डिफ़ॉल्ट नहीं, DTD को इसे लागू करने की आवश्यकता होती है
: "इस विशेषता के लिए डिफ़ॉल्ट मान 'एप्लिकेशन / x-www-form-urlencoded' है।"

<!ATTLIST FORM
  %attrs;                              -- %coreattrs, %i18n, %events --
  action      %URI;          #REQUIRED -- server-side form handler --
  method      (GET|POST)     GET       -- HTTP method used to submit the form--
  enctype     %ContentType;  "application/x-www-form-urlencoded"

विधि: "यह या तो GET या POST हो सकता है, और GET में चूक हो सकती है।"
कार्रवाई: कोई स्पष्ट वाक्य नहीं, केवल DTD के
संदर्भ में: "यह आवेदन / x-www-form-urlencoded में चूक करता है ।"

<!ATTLIST FORM
        action %URL #IMPLIED  -- server-side form handler --
        method (%HTTP-Method) GET -- see HTTP specification --
        enctype %Content-Type; "application/x-www-form-urlencoded"

विधि: केवल डीटीडी
कार्रवाई में कोई स्पष्ट वाक्य नहीं है: "एक फॉर्म का एक्शन यूआरआई दस्तावेज़ के आधार यूआरआई के लिए चूक करता है"
enctype: "सभी रूपों के लिए डिफ़ॉल्ट एन्कोडिंग` आवेदन / x-www-form-urlencoded है। "

<!ATTLIST FORM
        ACTION CDATA #IMPLIED
        METHOD (%HTTP-Method) GET
        ENCTYPE %Content-Type; "application/x-www-form-urlencoded"
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.