आपने GET और POST रिक्वेस्ट के बारे में सुना होगा, लेकिन ये सिर्फ शुरुआत हैं।

प्रत्येक HTTP अनुरोध अपने आवश्यक उद्देश्य का वर्णन करने के लिए एक विधि का उपयोग करता है। किसी वेब पेज को लाने से लेकर किसी संसाधन को हटाने तक के कार्यों के लिए प्रत्येक विधि का विशिष्ट उपयोग होता है। GET और POST दो सबसे परिचित हैं, लेकिन सात अन्य हैं।

इस अवधारणा के बारे में जानें और नौ संभावित HTTP विधियों में से प्रत्येक के लिए क्या है।

एक HTTP विधि क्या है?

आपके द्वारा किए गए प्रत्येक HTTP अनुरोध में एक क्रिया और उस क्रिया के लिए एक लक्ष्य शामिल होता है, एक क्रिया और एक संज्ञा की तरह जो एक वस्तु के रूप में कार्य करता है।

URL एक अद्वितीय संसाधन की पहचान करता है, जो अनुरोध के लक्ष्य के रूप में कार्य करता है। इस बीच, क्रिया - उस URL पर क्या क्रिया करनी है - एक विधि द्वारा दर्शाई गई है।

HTTP अनुरोध की पहली पंक्ति HTTP संस्करण, संसाधन URL और अनुरोध विधि सहित सबसे महत्वपूर्ण जानकारी प्रदान करती है:

/software/htp/cics/index.html HTTP/1.1 प्राप्त करें

9 HTTP तरीके क्या हैं?

पहली चार विधियाँ CRUD मॉडल की चार क्रियाओं के समतुल्य हैं: बनाएँ, पढ़ें, अद्यतन करें और हटाएं। संबंधित HTTP तरीके हैं डाक, पाना, रखना, और मिटाना.

instagram viewer

पाना

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

डाक

नए संसाधन बनाने के लिए POST का उपयोग करें, खासकर जब उन संसाधनों में एक पहचान योग्य मूल संसाधन हो। उदाहरण के लिए, यदि आपके पास /client संसाधन है, तो आपको /client को आवश्यक डेटा पोस्ट करके एक नया क्लाइंट बनाना चाहिए।

रखना

मौजूदा संसाधन को अपडेट या बदलें। यह POST के समान है, लेकिन ग्राहक संसाधन के लिए एक अद्वितीय पहचानकर्ता चुनने के लिए ज़िम्मेदार है। PUT का उपयोग करके एक संसाधन बनाने के लिए, संसाधन URL में एक पहचानकर्ता शामिल होना चाहिए, उदाहरण के लिए, /clients/007.

मिटाना

URL में आपके द्वारा निर्दिष्ट संसाधन को हटाने के लिए इस विधि का उपयोग करें। सभी HTTP विधियों की तरह, सर्वर के लिए समर्थन नीचे है। यह किसी को भी संसाधन हटाने की अनुमति दे सकता है, हालांकि यह स्पष्ट रूप से जोखिम भरा होगा। DELETE का समर्थन करने वाले सर्वर को आमतौर पर इसकी आवश्यकता होगी सत्यापन और प्राधिकरण.

दो अन्य विधियाँ उपरोक्त पर मामूली बदलाव प्रदान करती हैं: पैबंद और सिर. कुछ खास एपीआई का उपयोग करते समय या यदि आप अपना स्वयं का निर्माण कर रहे हैं तो आप उन्हें उपयोगी पा सकते हैं।

पैबंद

PATCH विधि मौजूदा संसाधन को केवल आंशिक डेटा के साथ अद्यतन करती है। दूसरे शब्दों में, आपको नए संसाधन के पूर्ण प्रतिनिधित्व की आपूर्ति करने की आवश्यकता नहीं है, केवल वे फ़ील्ड जिन्हें आपको अपडेट करने की आवश्यकता है।

सिर

एक हेड अनुरोध तब होता है जब आप किसी संसाधन के बारे में जानकारी चाहते हैं, लेकिन संसाधन के बारे में नहीं। प्रतिक्रिया में शरीर शामिल नहीं होगा, लेकिन इसमें उपयोगी HTTP शीर्षलेखों का एक सेट होगा। सामग्री-लंबाई प्रतिक्रिया शीर्षलेख के माध्यम से आप इसे डाउनलोड करने से पहले फ़ाइल का कुल आकार ढूंढ सकते हैं।

शेष तरीके-विकल्प, जोड़ना, और पता लगाना—अधिक अस्पष्ट हैं। वे मेटाडेटा, नेटवर्किंग और समस्या निवारण से निपटते हैं। आप उन्हें कुछ प्रकार की प्रोग्रामिंग में उपयोगी पा सकते हैं, लेकिन आप शायद उन्हें हर दिन इस्तेमाल नहीं करेंगे।

विकल्प

एक सर्वर को आपको यह बताकर इस विधि का जवाब देना चाहिए कि संसाधन वास्तव में कौन से HTTP तरीकों का समर्थन करता है। यह खोज के लिए उपयोगी हो सकता है।

जोड़ना

कुछ प्रकार के नेटवर्किंग सॉफ़्टवेयर दो कंप्यूटरों के बीच सुरंग स्थापित करने के लिए इस विधि का उपयोग कर सकते हैं। इसका उपयोग अक्सर प्रॉक्सी के माध्यम से HTTPS कनेक्शन आरंभ करने के लिए किया जाता है।

पता लगाना

समस्या निवारण के लिए यह विधि उपयोगी है। इसे प्राप्त करने पर, सर्वर को प्रतिक्रिया निकाय में प्राप्त अनुरोध को वापस भेजना चाहिए। यह विधि यह जाँचने के लिए एक तंत्र प्रदान करती है कि क्या मध्यवर्ती मशीनों ने अनुरोध के किसी विवरण को बदल दिया है।

GET और HEAD ही केवल दो तरीके हैं जिनका हर सामान्य वेब सर्वर समर्थन करता है। एक विशेष सर्वर अन्य तरीकों का समर्थन कर सकता है या नहीं भी कर सकता है, इसलिए आपको पहले जांच करनी चाहिए।

आप इन तरीकों का इस्तेमाल कब कर सकते हैं?

अधिकांश समय, HTTP विधियाँ आपके लिए पारदर्शी होंगी। हालाँकि, यदि आप किसी वेब पेज पर कोई फ़ॉर्म जोड़ते हैं या API का उपयोग करते हैं, तो आपको उन पर विचार करने की आवश्यकता होगी।

HTML में HTTP के तरीके

प्रपत्र तत्व तरीका विशेषता आपको फ़ॉर्म सबमिट करते समय उपयोग करने के लिए HTTP विधि सेट करने देती है। HTML केवल समर्थन करता है डाक और पाना इस विशेषता के लिए मान—साथ ही एक अस्पष्ट संवाद विकल्प।

<प्रपत्रतरीका="डाक">
...
प्रपत्र>

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

चूंकि POST डेटा URL का हिस्सा नहीं है, इसलिए यदि आप इसे GET के माध्यम से भेजते हैं तो यह अधिक निजी है। डेटा अभी भी अनुरोध के मुख्य भाग में मौजूद है, जहां, सिद्धांत रूप में, एक हमलावर इसे रोक सकता है। लेकिन HTTPS के माध्यम से डेटा भेजने से यह समस्या कम होनी चाहिए।

आपको जीईटी अनुरोधों के साथ उपयोगकर्ता लॉगिन को कभी भी लागू नहीं करना चाहिए। भले ही लॉगिन बनाने या अपडेट करने की तुलना में एक रीड ऑपरेशन की तरह अधिक लग सकता है, फिर भी आपको डेटा को सुरक्षित करने के लिए POST का उपयोग करने की आवश्यकता है।

चूंकि HTML फॉर्म केवल GET और POST का समर्थन करते हैं, आप सीधे ऐसा फॉर्म नहीं बना सकते हैं, उदाहरण के लिए, सर्वर पर संसाधन को हटा दें। एक सामान्य वर्कअराउंड, जो सर्वर पर REST सिद्धांतों का सम्मान करता है, एक प्लेसहोल्डर चर का उपयोग करना है और दिखावा करना है कि यह मूल HTTP विधि थी। उदाहरण के लिए:

<प्रपत्रतरीका="डाक">
<इनपुटप्रकार="छिपा हुआ"नाम="_तरीका"कीमत="मिटाना" />
...
प्रपत्र>

आपका सर्वर-साइड कोड इस 'प्रॉक्सी मेथड' वेरिएबल की मौजूदगी की जांच कर सकता है और इसे इस तरह से ट्रीट कर सकता है जैसे कि यह असली मेथड हो। उदाहरण के लिए, PHP में:

$विधि = $_SERVER["REQUEST_METHOD"];

अगर (array_key_exists("_तरीका", $_REQUEST)) {
$विधि = $_अनुरोध["_तरीका"];
}

प्रोग्रामेटिक रूप से HTTP अनुरोध भेजना

वेब फ़ेच एपीआई एक फ़ेच() जावास्क्रिप्ट फ़ंक्शन प्रदान करता है जिसका उपयोग आप HTTP अनुरोध भेजने के लिए कर सकते हैं। यह तरीकों की पूरी श्रृंखला का समर्थन करता है, न कि केवल HTML द्वारा समर्थित GET और POST का।

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

लाना(' https://example.com/', { तरीका: "सिर" });

आप PHP सहित कई सर्वर-साइड भाषाओं से HTTP अनुरोध भी भेज सकते हैं। उस भाषा में, कर्ल लाइब्रेरी ऐसे अनुरोध भेजने का एक सामान्य तरीका है।

कर्ल लाइब्रेरी में एक CURLOPT_CUSTOMREQUEST विकल्प है जिसे आप एक विधि निर्दिष्ट करने के लिए सेट कर सकते हैं

अगर ($ch = curl_init($url)) {
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'रखना');
curl_exec ($ ch);
// ...
}

कमांड लाइन के माध्यम से

कर्ल कमांड लाइन टूल आपको कई प्रोटोकॉल में से एक के माध्यम से या सर्वर से डेटा स्थानांतरित करने देता है। HTTP (और HTTPS) दो बहुत ही सामान्य उपयोग के मामले हैं।

डिफ़ॉल्ट रूप से, कर्ल एक GET अनुरोध भेजता है, जैसा कि आप निम्न आदेश से पुष्टि कर सकते हैं:

कर्ल -v -s -o /dev/null example.com/get-test

आप आउटपुट की पांचवीं पंक्ति पर अनुरोध विधि देख सकते हैं:

आप अनुरोध विधि को बदल सकते हैं जो कर्ल -X ध्वज का उपयोग करके भेजता है:

कर्ल -v -s -o /dev/null example.com/get-test -X पोस्ट

अब, कर्ल POST विधि का उपयोग करके एक अनुरोध भेजता है:

HTTP के कई उपयोग हैं

वेब पर आप जो कुछ भी करते हैं, उसमें से अधिकांश में फॉर्म सबमिशन के लिए कभी-कभार पोस्ट के साथ मानक GET अनुरोध शामिल होंगे। लेकिन HTTP इससे कहीं अधिक अभिव्यक्तिपूर्ण प्रोटोकॉल है।

कुछ सबसे सामान्य तरीके CRUD मॉडल को प्रतिबिंबित करते हैं जो HTTP को संसाधन-केंद्रित API बनाने के लिए एक उत्कृष्ट आधार बनाता है।