वेभूक क्या है? डिलीवरी, रिसीवर और सुरक्षा

वेभूक क्या है?

स्क्रैपलेस स्क्रैपिंग एपीआई एक असिंक्रोनस काम समाप्त होने के बाद एक कॉन्फ़िगर किए गए वेभूक एंडपॉइंट पर एक कार्य परिणाम भेज सकता है।

संक्षेप में

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

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

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

निर्माता, घटना, और रिसीवर अनुबंध

तीन भूमिकाएँ एक वेभूक एक्सचेंज को समझने योग्य बनाती हैं। निर्माता घटना का मालिक होता है, घटना रिकॉर्ड बताता है कि क्या हुआ, और रिसीवर एक पहुंच योग्य एंडपॉइंट को उजागर करता है। निर्माता को एक एंडपॉइंट URL की आवश्यकता होती है और अक्सर एक सब्सक्रिप्शन होता है जो बताता है कि कौन सी घटनाएँ भेजनी हैं। रिसीवर को अपेक्षित अनुरोध विधि, हेडर, पेलोड आकार, और स्वीकृति प्रतिक्रिया के बारे में जानने की आवश्यकता होती है। HTTP अर्थशास्त्र विशिष्टता अनुरोध और प्रतिक्रिया ढाँचे को परिभाषित करती है; प्रदाता अनुबंध घटना का अर्थ प्रदान करता है।

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

वर्तमान AI स्क्रैपर कार्य जीवन चक्र एक वैकल्पिक वेभूक URL और भेजे गए कार्य ID, स्थिति, इनपुट, और वैकल्पिक कार्य परिणाम को दस्तावेजित करता है। यह एक ठोस अनुबंध है, न कि एक सार्वभौमिक वेभूक स्कीमा। किसी अन्य उत्पाद के लिए बनाए गए रिसीवर को उस उत्पाद की दस्तावेज़ीकरण की जांच करनी चाहिए। यहां तक कि एक ही प्लेटफॉर्म के भीतर, दो घटनाओं के परिवार विभिन्न फ़ील्ड नामों और पूरी होने की स्थितियों का उपयोग कर सकते हैं।

वेभूक डिलीवरी बनाम पोलिंग

पोलिंग एक सेवा से एक अनुसूचित कार्यक्रम पर स्थिति का पूछता है। एक वेभूक पहली चाल की दिशा को बदलती है: स्रोतเมื่อ उसे कोई संबंधित घटना होती है, तो वह आपके एंडपॉइंट से संपर्क करता है। यह शून्य चेक को कम कर सकता है और आपकी कार्यप्रवाह को एक परिवर्तन नोटिस करने से पहले देरी को कम कर सकता है। यह एक सार्वजनिक रिसीवर, नेटवर्क डिलीवरी अनिश्चितता, और नए सुरक्षा कार्य भी जोड़ता है। न तो पैटर्न दो स्वतंत्र रूप से संचालित प्रणालियों के बीच अंतर्निहित व्यावसायिक घटना को लेनदेन में बदलता है।

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

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

कैसे एक नोटिफिकेशन को सुरक्षित रूप से स्वीकार करें

एक Incoming HTTP अनुरोध को अविश्वसनीय इनपुट के रूप में मानें। पहले इसके आकार और विधि को सीमित करें, इच्छित मार्ग की आवश्यकता करें, और केवल प्रलेखित मीडिया प्रकार को पार्स करें। फिर प्रदाता के प्रमाणन विधि को लागू करें। यदि प्रदाता पेलोड्स पर हस्ताक्षर करता है, तो प्रमाणीकरण को सटीक कच्चे बाइट्स और प्रलेखित हस्ताक्षर हेडर्स का उपयोग करके करना चाहिए इससे पहले कि कोई JSON पार्सर प्रतिनिधित्व को बदल दे। मानक वेभूक विशेषता एक सामान्य साइन-इवेंट मॉडल का विवरण करता है, लेकिन एक निर्माता को वास्तव में इसे लागू करना चाहिए इससे पहले कि रिसीवर उस मॉडल पर भरोसा कर सके।

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

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

रसीद, कतारबद्धता, और यथार्थ कार्यप्रणाली

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

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

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

पंजीकरण, विफलताएं, और अवलोकनशीलता

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

उपभोक्ता पर वितरण के साक्ष्य रिकॉर्ड करें: प्राप्ति समय, प्रदाता कार्य या घटना पहचानकर्ता, जब प्रदान किया गया हो, схемा संस्करण, प्रमाणीकरण निर्णय, स्वीकृति स्थिति, कतार ID, और अंतिम प्रसंस्करण स्थिति। संचालन के लिए आवश्यक नहीं हैं, जो रहस्यों और व्यक्तिगत डेटा को बाहर करें। एक डैशबोर्ड जो केवल “वेबहुक सफल” कहता है, HTTP वितरण को सफल डाउनस्ट्रीम संग्रह से अलग नहीं कर सकता। उन मापों को अलग करें और रुके हुए स्वीकार किए गए घटनाओं पर सूचित करें।

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

जब एक वेबहुक गलत उपकरण है

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

उच्च-वॉल्यूम घटना धाराओं को भी ऐसे ब्रोकर सुविधाओं की आवश्यकता हो सकती है जो एक अलग HTTP रिसीवर प्रदान नहीं करता है, जैसे विभाजित आदेश और ऑफसेट द्वारा पुनरावृत्ति। एक वेबहुक निर्माता अपने स्वयं के वितरण लॉग की पेशकश कर सकता है, लेकिन यह एक प्रदाता-विशिष्ट सुविधा है, यह बुनियादी अवधारणा का हिस्सा नहीं है। घटना की मात्रा, देरी सहिष्णुता, और पुनर्प्राप्ति आवश्यकता को पूरा करने के लिए सबसे छोटे तंत्र का उपयोग करें।

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

निष्कर्ष

एक वेबहुक एक उत्पादक से रिसीवर तक एक घटना-प्रेरित HTTP कॉल है। विश्वसनीय इकाई पूर्ण अनुबंध है: पंजीकरण, प्रमाणीकरण रसीद, दीर्घकालिक स्वीकृति, डुप्लिकेट नियंत्रण, स्थिति संक्रमण, और सामंजस्य। एक प्रलेखित घटना और एक मापने योग्य स्थानीय आउटपुट से शुरू करें इससे पहले कि रिसीवर को अतिरिक्त घटना परिवारों पर विस्तारित किया जाए।

एक इवेंट-ड्रिवेन संग्रह प्रवाह बनाएं

एक समर्थित कार्य बनाएँ, इसकी पहचान रखें, और इसे एक रिसीवर से जोड़े जो आप मान्य और अवलोकन कर सकते हैं।

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

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

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

क्या एक वेबहुक API के समान है?

एक वेबहुक एक इवेंट सूचनाओं के लिए HTTP API सीमा का उपयोग करने का एक तरीका है। प्रदाता एक घटना के बाद कॉल शुरू करता है, जबकि एक साधारण API क्लाइंट आमतौर पर जब उसे परिणाम की आवश्यकता होती है तो क्वेरी या आदेश शुरू करता है। एक सिस्टम समान कार्य के लिए दोनों पैटर्न का उपयोग कर सकता है: कॉलबैक पूर्णता का संकेत देता है और एक स्थिति एंडपॉइंट प्राधिकृत स्थिति की पुष्टि करता है।

क्या एक वेबहुक दो बार आ सकता है?

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

क्या रिसीवर को एक हस्ताक्षर सत्यापित करना चाहिए?

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

एक रिसीवर को क्या प्रतिक्रिया भेजनी चाहिए?

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

क्या एक वेबहुक पूरी तरह से पोलिंग का स्थान ले सकता है?

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

संदर्भ