HTTP अनुरोध

इस उदाहरण को प्रदान करने के लिए, पहले HTTP के सभी मूल सिद्धांतों का वर्णन किया जाएगा। यह महत्वपूर्ण है कि इंटरफेस के कार्यप्रणाली को समझने के लिए।

मूल सिद्धांत

निम्नलिखित बिंदुओं पर विशेष ध्यान देना चाहिए:

  • HTTP के माध्यम से एक अनुरोध के दौरान, क्लाइंट द्वारा कनेक्शन स्थापित किया जाता है, जब तक कि सर्वर द्वारा कनेक्शन अलग नहीं कर दिया जाता।
  • अनुरोध TCP के माध्यम से पोर्ट 80 (HTTP अन्क्रिप्टेड) और पोर्ट 443 (HTTPS एन्क्रिप्टेड) पर किया जाता है।
  • पोर्ट 80 का उपयोग http:// या पोर्ट 443 का उपयोग https:// के साथ किया जाता है, तो पोर्ट छिपा दिया जाता है।
  • HTTP/1.1 से कनेक्शन लेयर इस तरह है कि कनेक्शन कुछ समय के लिए खुला छोड़ दिया जाता है ताकि TCP की हैंडशेक को बाइपास किया जा सके। यह Antcas मॉनिटर में दिखाई नहीं देता है। हालाँकि, टाइमआउट के बाद क्लाइंट, यानी Antcas सर्वर द्वारा कनेक्शन बंद कर दिया जाता है। इसलिए टाइमआउट को उचित रूप से उच्च रखना चाहिए।
  • हर अनुरोध पूर्ण रूप से पिछले संस्करणों के साथ संगत होता है। यह महत्वपूर्ण नहीं है कि एक सर्वर HTTP/1.0, HTTP/1.1 या HTTP/2 का समर्थन करता है।
  • हेडर केस-इन्सेंसिटिव है। इसका मतलब है कि बड़े और छोटे अक्षरों में कोई अंतर नहीं पड़ता है। हालाँकि कुछ निर्माताओं को इस तरह से लागू करने में ध्यान नहीं देता है।
  • Antcas Control में चर कोडिंग हमेशा UTF-8 होता है। अगर अन्य का उपयोग किया जाता है, तो उन्हें संभवतः परिवर्तित करना होगा।
  • URL की अधिकतम लंबाई, क्वेरी सहित, 2'083 अक्षर है।

एक URL का निर्माण इस प्रकार होता है:

http://server.tld/getdata?project=you%26i+project&id=25#anker
कंपोनेंट अर्थ
http:// प्रोटोकॉल को परिभाषित करता है। Antcas Control वर्तमान में http और https का समर्थन करता है।
server.tld लक्ष्य सर्वर के डोमेन (DNS) या IP एड्रेस को परिभाषित करता है।
getdata सर्वर का URI है। यह लक्ष्य पृष्ठ के बराबर है, एक पथ की तरह।
?[...] ? URL को GET अनुरोध से अलग करता है, जिसके बाद सभी फॉर्म डेटा भी क्वेरी कहा जाता है। क्वेरी हमेशा एन्कोडेड होता है ताकि असमर्थित चरों को बदल दिया जा सके।
#[...] # चिह्न एक पृष्ठ पर एक एंकर को परिभाषित करता है। इस प्रकार किसी भी स्थान पर जंप (स्क्रॉल) किया जा सकता है। ये डेटा सर्वर को नहीं भेजे जाते हैं। इसके अलावा, यह क्षेत्र # सहित अनुरोध में कॉपी नहीं किया जाना चाहिए, अन्यथा यह सर्वर पर एक अलग लक्ष्य पृष्ठ को कॉल करेगा।

लक्ष्य सर्वरों का कॉन्फ़िगरेशन संबंधित HTTP गेटवे में होता है।

एक अनुरोध का निर्माण

एक अनुरोध के निर्माण में एक हेडर और एक बॉडी शामिल होती है। हेडर पहले पंक्ति में हमेशा उपयोग किए गए विधि, URI और प्रोटोकॉल को दिखाता है।

GET /getdata?project=you%26i+project&id=25 HTTP/1.1
Host: server.tld

इसके बाद सर्वर का जवाब आता है। इसमें अनुरोध की स्थिति कोड शामिल होती है। बॉडी हेडर के बाद एक खाली पंक्ति के साथ आती है।

HTTP/1.1 200 OK
Server: Apache2
Content-Type: text/html

<html>नमस्ते दुनिया</html>

स्थिति कोड

स्थिति कोड समूहों में विभाजित किए गए हैं। समूह पहले अंक द्वारा परिभाषित किए जाते हैं। इसके अलावा, संख्या के बाद स्पष्ट शब्द में अर्थ आता है। यहाँ कुछ उदाहरण दिए गए हैं:

स्थिति विवरण
200 OK अनुरोध सफल रहा।
301 Found सच्चे पृष्ठ पर रीडायरेक्ट। क्योंकि Antcas Control लिंक्स को फॉलो करता है, यह जवाब आमतौर पर छिपा दिया जाता है।
404 Not Found उल्लिखित पृष्ठ नहीं मिला।
500 Internal Server Error एक सर्वर त्रुटि हुई है।

विधियाँ

GET और POST विधियों का सबसे अधिक उपयोग किया जाता है।

विधि विवरण
GET GET अनुरोध स्टैंडर्ड अनुरोध है। यह कोई सामग्री का समर्थन नहीं करता है।
POST POST अनुरोध सर्वर को एक सामग्री भेजता है। सामग्री खाली भी हो सकती है। फायदा यह है कि सामग्री की कोई लंबाई सीमा नहीं होती है। GET अनुरोध में केवल कुछ डेटा ही भेजे जा सकते हैं।
PUT PUT का उपयोग इंटरफेस द्वारा जानकारी आदान-प्रदान करने के लिए किया जाता है।
DELETE PUT के साथ मिलकर, इसका उपयोग डेटा को हटाने के लिए किया जाता है।
(अन्य) अन्य HTTP विधियों का भी समर्थन किया जाता है, लेकिन इसके लिए उचित कॉन्फ़िगरेशन की आवश्यकता होती है।

प्रमाणिकरण

बहुत से प्रमाणिकरण हेडर में होते हैं। हालाँकि, कुछ अनुरोध क्वेरी या सामग्री में परिभाषित किए जाते हैं।

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

POST /login HTTP/1.1
Host: server.tld

username=myname&password=1234

सर्वर का जवाब:

HTTP/1.1 200 OK
Server: Apache2
Content-Type: text/html
Set-Cookie: SESSION=vmvbquk7dq6dbbcq

अब इस कुकी को अगले अनुरोध में फिर से उपयोग किया जा सकता है:

GET /opendoor HTTP/1.1
Host: server.tld
Cookie: SESSION=vmvbquk7dq6dbbcq

टिप्स

ब्राउज़र के डेवलपर कंसोल में नेटवर्क के तहत अनुरोध का मूल्यांकन और परीक्षण किया जा सकता है। इसके अलावा, कभी-कभी हेडर को कॉपी करने या देखने की सलाह दी जाती है।

कॉन्फ़िगरेशन

Antcas Control में एक HTTP इंटरफेस एक गेटवे के साथ बनाया जाता है। गेटवे को HTTP क्लाइंट के रूप में कॉन्फ़िगर किया जाता है। यहाँ लक्ष्य एड्रेस और पोर्ट (आवश्यक) उचित रूप से दर्ज किए जाते हैं। इसके बाद संरचना में अनुरोध कॉन्फ़िगर किया जाता है। इसके लिए संचार में URL को एक चर के रूप में दर्ज किया जाता है।

साधारण अनुरोध

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

जटिल अनुरोध

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

उदाहरण

इस उदाहरण में, GET विधि का उपयोग करके डेटा एक सर्वर को भेजा जाता है और जवाब का मूल्यांकन किया जाता है। पूर्ण URL इस प्रकार है:

http://server.tld/getdata?project=you%26i+project&id=25

डेटा एक सर्वर से प्राप्त या भेजा जा सके, इसके लिए निम्नलिखित उदाहरण का उपयोग किया जाता है:

सूचना: उदाहरण यह नहीं दिखाता है कि अनुरोध कैसे ट्रिगर किया जाना चाहिए। इसे SET इनपुट पर एक पॉजिटिव एज के साथ ट्रिगर किया जाता है। अनिच्छित अनुरोध को रोकने के लिए, DIS इनपुट को TRUE पर सेट करना चाहिए।

इंटरफेस का कॉन्फ़िगरेशन इस प्रकार होता है: