क्या आप एक सेवर के लिए उप-अनुक्रमिक HTTP पोस्ट अनुरोध भेज सकते हैं

मैं सिर्फ HTTP पोस्ट अनुरोधों में शुरू कर रहा हूं। इतना है कि मुझे कोई जानकारी नहीं है कि यह मेरी समस्या को हल करने जा रहा है, लेकिन यह किसी भी तरह से सीखने के लिए एक दिलचस्प बात की तरह लगता है। वैसे भी, मैं वर्तमान में वेबब्रोसर नियंत्रण के साथ निम्नलिखित करता हूं:

  1. किसी पृष्ठ पर नेविगेट करें
  2. उपयोगकर्ता नाम और पासवर्ड दर्ज करें
  3. 'लॉगिन' बटन
  4. पर क्लिक करें
  5. टेक्स्टबॉक्स में कुछ टेक्स्ट दर्ज करें
  6. एक और बटन क्लिक करें (जो एक पुष्टिकरण पृष्ठ लोड करता है)
  7. पुष्टिकरण बटन पर क्लिक करें

मेरा सवाल है कि HTTP POST अनुरोध चीज वेब क्लाइंट को वेबपृष्ठ में लॉग इन रहने की अनुमति देती है, क्या यह पृष्ठ पर पोस्ट करने की अनुमति देता है और फिर अद्यतन पृष्ठ प्राप्त होने के बाद फिर से पोस्ट करने की अनुमति देता है (चरण 4, 5 और 6)।

0
@MarcB तो क्या मैं सिद्धांत में एक http अनुरोध में 1-6 कदम उठा सकता हूं? महान! चूंकि मैं वास्तव में चरण 1-3 करता हूं और फिर 4-6 चरणों को दोहराता हूं, तो क्या मैं एक अनुरोध में सबसे अच्छा करूँगा? या http अनुरोध 'खुला' रखना बुरा है?
जोड़ा लेखक FraserOfSmeg, स्रोत
आह अच्छा। वैसे यह वास्तव में मेरे प्रश्न का उत्तर दिया है। यदि आप किसी भी उत्तर में जो कुछ कहा है उसे छोड़ना चाहते हैं, तो मैं इसे सही उत्तर के रूप में बनाउंगा और इस प्रश्न को 'उत्तर दिया जा सकता है :) :) क्या आप कोई भी ट्यूटोरियल नहीं करते हैं जहां बहुत सारी चीज़ें होती हैं एक अनुरोध?
जोड़ा लेखक FraserOfSmeg, स्रोत
प्रत्येक http अनुरोध हर दूसरे http अनुरोध से स्वतंत्र है - यह एक स्टेटलेस प्रोटोकॉल है। आप जो भी HTTP अनुरोध चाहते हैं वह आप कर सकते हैं। पोस्ट> मिल-> put-> delete-> सिर> पोस्ट> blah-> blah-> blah।
जोड़ा लेखक Marc B, स्रोत
http keepalives है, लेकिन केवल छोटी अवधि के लिए, क्योंकि सर्वर अपने संसाधनों को समाप्त नहीं करना चाहता है। आमतौर पर आपको कनेक्शन बोलते हैं, कुछ करते हैं/अनुरोध करते हैं, डिस्कनेक्ट करें।
जोड़ा लेखक Marc B, स्रोत

1 उत्तर

तो आप किसी वेब सामग्री को स्क्रैप करना चाहते हैं या किसी प्रोग्राम या स्क्रिप्ट से किसी साइट में हेरफेर करना चाहते हैं, लेकिन आपको कठिन समय हो रहा है। नहीं, बस एक पोस्ट पर स्विच करने से आपको यहां मदद नहीं मिलेगी। अक्सर, समस्या प्रमाणीकरण के साथ करना है। आपको जो करना है, वह आपके सत्र को एक से अधिक HTTP अनुरोध पर सुरक्षित रखता है, भले ही अनुरोध पोस्ट, प्राप्त करें, सिर, हटाएं, पुट, अद्यतन आदि।

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

पहला अनुरोध साइट पर आपकी लॉगिन जानकारी पोस्ट करेगा। इस बिंदु पर, वेबसाइट एक प्रतिक्रिया जारी करेगी। आपको इस प्रतिक्रिया का विश्लेषण करने की आवश्यकता है, क्योंकि वहां कहीं भी सत्र कुंजी होगी। अब जब मैं आपको प्रतिक्रिया का विश्लेषण करने के लिए कहता हूं, तो मेरा मतलब यह नहीं है कि आप ऐसा करने के लिए कोड लिखते हैं ... जो बाद में आएगा। आपको वास्तव में नमूना अनुरोध को प्रतिक्रिया रिकॉर्ड करने की आवश्यकता है, और सत्र कुंजी खोजने के लिए अपनी आंखों के साथ इसे पढ़ना होगा। आपको यह भी जानने की जरूरत है कि वेब सर्वर भविष्य के अनुरोधों पर सत्र कुंजी कैसे ढूंढता है।

इस प्रक्रिया में, यह याद रखना महत्वपूर्ण है कि एक प्रतिक्रिया केवल HTML से अधिक होती है। वास्तव में, इस कुंजी के लिए सबसे आम स्थान कुकी में है। एक बार जब आप सत्र कुंजी प्राप्त करने के बारे में जानते हैं, तो आपको यह सुनिश्चित करना होगा कि आपके अगले अनुरोध में अनुरोध के भाग के रूप में सत्र कुंजी शामिल है। इस प्रकार वेबसाइट आपको पता चलेगी कि आप कौन हैं, कि आप वांछित कार्रवाई करने के लिए अधिकृत हैं, और कौन सी जानकारी वापस आनी है।

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

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

नेट दुनिया में, इन अनुरोधों को भेजने और प्रतिक्रियाओं का मूल्यांकन करने का सबसे अच्छा टूल वेबब्रोसर नियंत्रण <आम> नहीं है। इसके बजाय, System.Net.WebClient पर एक नज़र डालें कक्षा, या <कोड देखें > System.Net.HttpWebRequest / System.Net.HttpWebResponse

0
जोड़ा