HTTP हेडर क्या है? अनुरोध और प्रतिक्रिया फ़ील्ड्स

HTTP हेडर क्या है?

Scrapeless Web Unlocker दस्तावेज़ीकृत अनुरोध हेडर स्वीकार करता है और सार्वजनिक वेब सामग्री लौटाता है जिसे एप्लिकेशन HTTP प्रतिक्रिया संदर्भ के साथ निरीक्षण कर सकते हैं।

TL;DR

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

एक HTTP हेडर एक HTTP संदेश से जुड़ी एक फ़ील्ड है। एक अनुरोध फ़ील्ड सर्वर को यह बताने के लिए हो सकता है कि क्लाइंट किस प्रतिनिधित्व को स्वीकार करता है या एक प्रमाण-पत्र प्रदान करता है। एक प्रतिक्रिया फ़ील्ड लौटाई गई सामग्री, कैशिंग नीति, या राज्य अपडेट का वर्णन कर सकता है। हेडर संदेश शरीर के बगल में होते हैं; वे इसे प्रतिस्थापित नहीं करते। शरीर में HTML, JSON, एक छवि, या कुछ भी नहीं हो सकता है।

शब्द हेडर एक प्रश्न में एकवचन होता है लेकिन एक वास्तविक विनिमय में आमतौर पर कई फ़ील्ड होते हैं। प्रत्येक फ़ील्ड को किसने भेजा और प्राप्तकर्ता इसे कैसे व्याख्यायित करता है, यह समझना सामान्य गलतियों से बचाता है: Accept को Content-Type के प्रमाण के रूप में मान लेना, यह मान लेना कि 200 प्रतिक्रिया वांछित पृष्ठ है, या मेटाडेटा में यात्रा करने के कारण एक रहस्य लॉग करना। यह मार्गदर्शिका फ़ील्ड-द्वारा-फ़ील्ड पढ़ने के दृष्टिकोण का उपयोग करती है।

हेडर्स HTTP एक्सचेंज में कहाँ फिट होते हैं

एक क्लाइंट एक विधि और लक्ष्य के साथ एक अनुरोध भेजता है, उसके बाद फ़ील्ड और कभी-कभी सामग्री होती है। सर्वर एक स्थिति, अपने स्वयं के फ़ील्ड, और कभी-कभी सामग्री के साथ प्रतिक्रिया करता है। HTTP अर्थशास्त्र मानक ने फ़ील्ड को विस्तारशील संदेश घटक के रूप में परिभाषित किया है और उनके प्रतिनिधित्व से उनके भूमिका को भिन्न करता है। एक फ़ील्ड नाम केस-संवेदनशील नहीं होता है, इसलिए Content-Type और content-type एक ही पंजीकृत फ़ील्ड को संदर्भित करते हैं।

हेडर निर्देश और वर्णन ले जाते हैं, एप्लिकेशन स्थिति के बारे में कोई सार्वभौमिक सत्य नहीं। एक सर्वर लॉगिन पृष्ठ, प्रवेश नोटिस, या साधारण लेख लौटाते समय Content-Type को text/html पर सेट कर सकता है। एक कैश एक प्रतिनिधित्व को सेवा दे सकता है जिसका मेटाडेटा एक पिछले मूल प्रतिक्रिया को दर्शाता है। एक गेटवे अपने स्वयं के फ़ील्ड जोड़ सकता है। यह पहचानने के लिए कि एप्लिकेशन ने वास्तव में क्या प्राप्त किया, पूर्ण विनिमय और लौटाई गई सामग्री का निरीक्षण करें।

HTTP संस्करण तार पर संदेशों को भिन्न तरीके से एनकोड करते हैं। HTTP/1.1 पाठ्य फ़ील्ड लाइनों का उपयोग करता है; HTTP/2 और HTTP/3 के अपने स्वयं के फ्रेमिंग और हेडर संकुचन होते हैं। एप्लिकेशन कोड आमतौर पर परिवहन परत के संकल्पनाओं के बाद फ़ील्ड नामों और मूल्यों के साथ काम करता है। HTTP/1.1 संदेश विनिर्देशन कच्चे ट्रेस पढ़ने के लिए उपयोगी है, जबकि अर्थयात्मक परिभाषाएं संस्करणों के बीच प्रासंगिक रहती हैं।

क्लाइंट आमतौर पर भेजने वाले अनुरोध फ़ील्ड

Accept यह बताता है कि एक क्लाइंट किस प्रतिक्रिया मीडिया प्रकार को प्राप्त करने के लिए तैयार है। Accept-Language भाषा प्रेfernce व्यक्त कर सकता है। User-Agent क्लाइंट सॉफ़्टवेयर की पहचान करता है, हालांकि सर्वर को इसे प्रमाणीकरण के रूप में नहीं मानना चाहिए। प्रमाणीकरण या प्रोवाइडर-विशिष्ट कुंजी फ़ील्ड सेवा अनुबंध के अनुसार प्रमाण-पत्र प्रस्तुत करता है। एक अनुरोध पर Content-Type उस शरीर का वर्णन करता है जो भेजा जा रहा है, जो JSON और फ़ॉर्म प्रस्तुतियों के लिए महत्वपूर्ण है। प्रत्येक फ़ील्ड का एक अलग उद्देश्य होता है और कोई भी एक पड़ोसी फ़ील्ड से विश्वसनीय रूप से नहीं निकाला जा सकता।

Scrapeless REST अनुरोधों के लिए, कुंजी सुरक्षा गाइड संबंधित एंडपॉइंट्स के लिए प्रमाण-पत्र फ़ील्ड के रूप में x-api-token का दस्तावेज करता है। Web Unlocker त्वरित प्रारंभ अनुरोध संरचना का दस्तावेज करता है, जिसमें अभिनेता और इनपुट फ़ील्ड शामिल हैं, और लक्ष्य अनुरोध के लिए वैकल्पिक कस्टम हेडर का वर्णन करता है। Scrapeless को कॉल का प्रमाणीकरण करने वाले हेडर को उस हेडर के साथ भ्रमित न करें जिसे आप सार्वजनिक लक्ष्य के लिए Web Unlocker को भेजने के लिए कहते हैं।

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

बदलते अर्थ की व्याख्या करने वाले प्रतिक्रिया क्षेत्र

Content-Type एक क्लाइंट को बताता है कि लौटाई गई प्रतिनिधित्व किस तरह से लेबल की गई है। एक JSON पार्सर को text/html पर अंधाधुंध नहीं बुलाना चाहिए। Content-Encoding उस प्रतिनिधित्व पर लागू कोडिंग का वर्णन करता है। Cache-Control कैशिंग निदेश बताता है। स्थान आमतौर पर एक रीडायरेक्ट प्रतिक्रिया पर प्रकट होता है और एक और लक्ष्य की ओर इंगित करता है। Set-Cookie एक ब्राउज़र या कुकी-जानकारी वाले क्लाइंट को परिभाषित नियमों के तहत स्थिति को संग्रहीत करने के लिए निर्देश दे सकता है। संदेश स्थिति और फ़ील्ड को एक साथ पढ़ा जाना चाहिए।

एक प्रतिक्रिया एक ETag या Last-Modified मान को शामिल कर सकती है जो एक क्लाइंट को बाद में एक संधारण अनुरोध करने में मदद करता है। वे वेलिडेटर्स एक स्क्रैपर को यह नहीं बताते कि उत्पाद की कीमत सटीक है; वे HTTP नियमों के तहत प्रतिनिधित्व संस्करण या संशोधन संदर्भ का वर्णन करते हैं। इसी तरह, एक 304 प्रतिक्रिया का अर्थ केवल एक पहले स्टोर की गई प्रतिनिधित्व के साथ होता है। एक व्यवस्थित 304 बॉडी एक ताजा पृष्ठ नहीं है जिसे पार्स किया जा सके।

कुछ फ़ील्ड ब्राउज़र सुरक्षा नीति द्वारा शासित होते हैं। Access-Control-Allow-Origin ब्राउज़र JavaScript को एक क्रॉस-ओरिजिन प्रतिक्रिया पढ़ने पर प्रभाव डाल सकता है, लेकिन यह यह निर्धारित नहीं करता कि एक सर्वर-साइड HTTP क्लाइंट होस्ट से कनेक्ट कर सकता है। ब्राउज़र CORS गाइड इस सीमा को समझाता है। डिबग करते समय, परत का नाम दें: ब्राउज़र प्रवर्तन, नेटवर्क प्रतिक्रिया, एप्लिकेशन प्राधिकरण, या पृष्ठ सामग्री।

उनकी अर्थ को नुकसान पहुँचाए बिना मान पढ़ना

हर हेडर मान को कॉमा पर नहीं तोड़ें। कुछ क्षेत्रों में सूची व्याकरण का उपयोग होता है, जबकि अन्य में तिथि, उद्धृत मान या अपने खुद के सिंटैक्स वाले संरचित घटक होते हैं। कुछ नामों के लिए कई फ़ील्ड लाइनों को एक साथ जोड़ा जा सकता है, लेकिन सभी के लिए नहीं; Set-Cookie एक परिचित विशेष मामला है। एक HTTP पुस्तकालय का उपयोग करें जो आपकी ज़रूरत की व्याख्या को बनाए रखे, फिर व्यक्तिगत फ़ील्ड परिभाषा लागू करें। जिस फ़ील्ड को आप नहीं समझते हैं उसे निरीक्षण के लिए डेटा के रूप में मानें, न कि सामान्यीकरण करने के लिए एक स्ट्रिंग।

हेडर नामों का भरोसेमंदता के लिए प्रॉक्सी के रूप में उपयोग नहीं किया जा सकता। User-Agent को एक क्लाइंट द्वारा सेट किया जा सकता है। Forwarded या X-Forwarded-For फ़ील्ड को प्रॉक्सी द्वारा डाला जा सकता है और केवल विश्वसनीय प्रॉक्सी कॉन्फ़िगरेशन के भीतर ही व्याख्या की जानी चाहिए। एक कस्टम अनुरोध ID एक कॉल को ट्रेस करने में मदद कर सकती है, लेकिन यह प्रेषक को प्रमाणित नहीं करती। सुरक्षा निर्णयों के लिए एक मान्य कनेक्शन और एक एप्लिकेशन-विशिष्ट भरोसेमंद सीमांकन की आवश्यकता होती है।

क्रेडेंशियल्स को विशेष संभालने की आवश्यकता है। सामान्य अनुरोध लॉग में Authorization, Cookie, या x-api-token मानों को लिखने से बचें। यदि एप्लिकेशन को डायग्नोस्टिक्स की आवश्यकता है, तो रिकॉर्ड करें कि क्या फ़ील्ड मौजूद थी और एक सुरक्षित अनुरोध पहचानकर्ता। सत्र स्थिति प्रकट हो सकने वाले क्षेत्रों के लिए आउटगोइंग और इनकमिंग ट्रेस दोनों को हटा दें। HTTP में किसी फ़ील्ड की स्थिति उसकी सामग्री को कम संवेदनशील नहीं बनाती।

वेब डेटा के लिए एक व्यावहारिक निरीक्षण अनुक्रम

रिडायरेक्ट के बाद अंतिम URL और HTTP स्थिति से शुरू करें। फिर Content-Type और अन्य फ़ील्ड पढ़ें जो शरीर की व्याख्या को प्रभावित करते हैं। अपेक्षित पृष्ठ के लिए अद्वितीय मार्कर के लिए सुरक्षित रूप से कैप्चर किया गया शरीर का एक छोटा हिस्सा निरीक्षण करें। एक प्रतिक्रिया व्याकरणिक रूप से मान्य HTML हो सकती है और फिर भी स्वीकृति स्क्रीन, लॉगिन प्रॉम्प्ट, या एक्सेस-प्रतिबंधित पृष्ठ हो सकती है। केवल पृष्ठ पहचान की पुष्टि करने के बाद ही एक पार्सर व्यावसायिक फ़ील्ड का चयन करे।

जब कमांड-लाइन फ़ेच की तुलना एक ब्राउज़र से करें, तो अनुरोध और प्रतिक्रिया दोनों पक्षों का निरीक्षण करें। एक ब्राउज़र कुकीज़, प्राथमिकताएँ और नेविगेशन संदर्भ भेज सकता है जो एक सरल क्लाइंट के पास नहीं होता है। यह पहले दस्तावेज़ प्रतिक्रिया के बाद JavaScript को भी निष्पादित कर सकता है। एक अलग लौटाया गया शरीर जांचने के लिए साक्ष्य है; यह कोई सबूत नहीं है कि एक लापता हेडर ब्राउज़र स्थिति को फिर से उत्पन्न करेगा।

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

निष्कर्ष

एक HTTP हेडर एक नामित संदेश फ़ील्ड है जिसका एक निश्चित उद्देश्य और फ़ील्ड-विशिष्ट सिंटैक्स है। इसे सही ढंग से पढ़ने का अर्थ है जानना कि इसे किस पक्ष ने भेजा, इसके मूल्य की व्याख्या कैसे की जाती है, और शरीर वास्तव में क्या Contains करता है। वेब डेटा कार्य के लिए, हेडर जांच सामग्री मान्यकरण का समर्थन करती है; वे इसे बदल नहीं सकती।

अपने सार्वजनिक पृष्ठ अनुरोधों को मान्य करें

एक अनुरोध को कॉन्फ़िगर करने और लौटाई गई प्रतिनिधित्व का निरीक्षण करने के लिए वर्तमान वेब अनलॉकर दस्तावेज़ का उपयोग करें।

आज साइन अप करें और पाएं $5 का मुफ्त क्रेडिट — कोई क्रेडिट कार्ड की आवश्यकता नहीं.

अपने $5 क्रेडिट का दावा करें →

अक्सर पूछे जाने वाले प्रश्न

क्या HTTP हेडर नाम केस-सेंसिटिव होते हैं?

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

अनुरोध और प्रतिक्रिया हेडर के बीच क्या अंतर है?

एक अनुरोध हेडर क्लाइंट से सर्वर की ओर जाता है; एक प्रतिक्रिया हेडर सर्वर की प्रतिक्रियासाथ जाता है। Accept एक क्लाइंट प्राथमिकता है, जबकि प्रतिक्रिया पर Content-Type लौटाई गई सामग्री को लेबल करता है। एक फ़ील्ड से निष्कर्ष निकालने से पहले दिशा पढ़ें।

क्या एक कुकी एक HTTP हेडर है?

Cookie और Set-Cookie HTTP फ़ील्ड हैं जो कुकी स्थिति को परिवहन करने के लिए उपयोग किए जाते हैं। ब्राउज़र स्टोरेज, स्कोपिंग, समाप्ति, और सुरक्षा गुण नियमों को जोड़ते हैं जो एक साधारण फ़ील्ड नाम और मान से परे होते हैं। एक कुकी का API कुंजी के साथ आदान-प्रदान नहीं किया जा सकता बस इसलिए कि दोनों प्रवेश को प्रभावित कर सकते हैं।

क्या एक सफल स्थिति और Content-Type साबित कर सकता है कि मुझे सही पृष्ठ मिला?

नहीं। एक 200 प्रतिक्रिया जो text/html के रूप में लेबल की गई है वह अभी भी एक लॉगिन पृष्ठ या सहमति नोटिस हो सकती है। व्यावसायिक फ़ील्ड निकालने से पहले अंतिम URL और उस सामग्री मार्कर की पुष्टि करें जो लक्षित पृष्ठ से संबंधित है।

ब्राउज़र और स्क्रिप्ट हेडर में अंतर क्यों हो सकता है?

एक ब्राउज़र अपनी सेटिंग के अनुसार कुकीज़, भाषा प्राथमिकताएँ, नेविगेशन संदर्भ और अन्य फ़ील्ड जोड़ सकता है। एक स्क्रिप्ट केवल वही भेजती है जो उसका HTTP पुस्तकालय और कोड निर्धारित करते हैं। एक अलग परिणाम को एक हेडर को जिम्मेदार ठहराने से पहले पूर्ण विनिमय और किसी भी JavaScript-संचालित अनुरोधों की तुलना करें।

संदर्भ