वेबहुक अनुरोध संरचना का विश्लेषण
वेबहुक एक सर्वर से दूसरे सर्वर पर रीयल-टाइम डेटा स्थानांतरित करने का एक महत्वपूर्ण माध्यम हैं। जब कोई बाहरी सेवा आपके सिस्टम पर वेबहुक भेजती है, तो उस अनुरोध की सटीक संरचना को समझना आवश्यक होता है। एक वेबहुक अनुरोध में मुख्य रूप से तीन भाग होते हैं: HTTP विधि, हेडर, और बॉडी (Body)।
इस संरचना का विश्लेषण करने के लिए, किसी भी सर्वर-साइड पार्सिंग या संशोधन से पहले कैप्चर की गई सटीक रॉ बॉडी का उपयोग करना महत्वपूर्ण है। सर्वर-साइड फ्रेमवर्क अक्सर आने वाले डेटा को स्वचालित रूप से पार्स या पुनर्गठित कर देते हैं, जिससे मूल बाइट्स बदल जाते हैं। वेबहुक अनुरोध निरीक्षक टूल आपको मूल अनुरोध को पेस्ट करने और उसकी वास्तविक संरचना को बिना किसी बदलाव के देखने की अनुमति देता है।
हेडर और उनकी भूमिका
वेबहुक संचार में हेडर अत्यंत महत्वपूर्ण भूमिका निभाते हैं। वे मेटाडेटा प्रदान करते हैं जो प्राप्तकर्ता सर्वर को यह समझने में मदद करता है कि पेलोड को कैसे संसाधित किया जाए। उदाहरण के लिए, Content-Type हेडर यह बताता है कि बॉडी का प्रारूप JSON है या URL-एन्कोडेड फॉर्म डेटा।
इसके अतिरिक्त, सुरक्षा के दृष्टिकोण से हेडर का उपयोग प्रेषक की पहचान सत्यापित करने के लिए किया जाता है। कई वेबहुक प्रदाता अनुरोध के साथ विशिष्ट हस्ताक्षर (Signatures) और टाइमस्टैम्प (Timestamps) भेजते हैं। यह टूल हेडर लाइनों का विश्लेषण करता है और सामान्य नाम पैटर्न जैसे signature, hmac, digest, और सामान्य टाइमस्टैम्प नामों की पहचान करके उन्हें अलग से प्रदर्शित करता है।
वेबहुक बॉडी प्रारूप और पार्सिंग नियम
वेबहुक पेलोड आमतौर पर दो मुख्य प्रारूपों में भेजे जाते हैं:
- JSON: आधुनिक एपीआई में सबसे अधिक उपयोग किया जाने वाला प्रारूप।
- URL-एन्कोडेड फॉर्म डेटा: पारंपरिक वेब फॉर्म सबमिशन की तरह।
यह टूल इन दोनों प्रारूपों का स्वचालित रूप से पता लगाता है और उन्हें व्यवस्थित रूप से प्रदर्शित करता है। यदि बॉडी खाली है, तो आउटपुट में (खाली अनुरोध बॉडी) दिखाई देता है। अन्य सभी बॉडी प्रकारों को सादे पाठ (Plain Text) के रूप में रखा जाता है।
ध्यान रखें कि JSON बॉडी को JSON.parse का उपयोग करके पार्स किया जाता है और फिर से व्यवस्थित किया जाता है। इस प्रक्रिया के कारण मूल अनुरोध में मौजूद अतिरिक्त व्हाइटस्पेस (Whitespace) और फ़ील्ड का मूल क्रम बदल जाता है।
स्थानीय परीक्षण के लिए cURL का उपयोग
वेबहुक प्राप्त करने वाले कोड का स्थानीय स्तर पर परीक्षण करना विकास प्रक्रिया का एक अनिवार्य हिस्सा है। इस टूल का एक मुख्य कार्य आपके द्वारा पेस्ट किए गए अनुरोध के आधार पर एक शेल-कोटेड (Shell-quoted) cURL कमांड उत्पन्न करना है।
यह उत्पन्न कमांड सीधे http://localhost:3000/webhooks को लक्षित करती है। इस कमांड को अपने स्थानीय टर्मिनल में चलाकर, आप अपने विकास परिवेश (Local Development Environment) में उसी सटीक अनुरोध को दोबारा भेज सकते हैं, जिससे आपको लाइव वेबहुक प्रदाता पर निर्भर रहे बिना अपने कोड को डीबग करने में मदद मिलती है।
वेबहुक हस्ताक्षर और प्रामाणिकता सत्यापन
वेबहुक सुरक्षा में "निरीक्षण" (Inspecting) और "सत्यापन" (Verifying) के बीच अंतर को समझना महत्वपूर्ण है।
यह टूल केवल हेडर नामों के आधार पर संभावित हस्ताक्षर फ़ील्ड की पहचान करता है। यह किसी भी प्रकार का HMAC कैलकुलेशन, एल्गोरिदम निष्पादन, पेलोड के मूल बाइट्स का मिलान, सीक्रेट की जांच, रीप्ले विंडो (Replay Window) का सत्यापन, या प्रदाता-विशिष्ट सत्यापन प्रक्रिया नहीं करता है।
हस्ताक्षर फ़ील्ड मिलने से यह साबित नहीं होता कि अनुरोध प्रामाणिक है — वास्तविक सत्यापन के लिए प्रेषक के हस्ताक्षर नियमों, सीक्रेट या कुंजी, और मूल अनुरोध बाइट्स की आवश्यकता होती है।
इनपुट सीमाएं और त्रुटि संदेश
टूल के सुचारू संचालन को सुनिश्चित करने के लिए कुछ तकनीकी सीमाएं और नियम निर्धारित किए गए हैं:
- विधि: आप POST, PUT, PATCH, GET, या DELETE में से चुन सकते हैं।
- हेडर: प्रति पंक्ति एक हेडर "Name: value" प्रारूप में होना चाहिए। अधिकतम सीमा 200 गैर-खाली हेडर लाइनें और कुल 100,000 अक्षर हैं।
- बॉडी (Body): अधिकतम सीमा 1,000,000 अक्षर है।
इन सीमाओं या प्रारूपों का उल्लंघन होने पर टूल निम्नलिखित विशिष्ट त्रुटि संदेश प्रदर्शित करता है:
- यदि कोई इनपुट नहीं है:
पहले कम से कम एक हेडर या अनुरोध का मुख्य भाग चिपकाएँ। - यदि हेडर की लंबाई सीमा से अधिक है:
इस टूल के लिए हेडर बहुत लंबे हैं। असंबंधित या दोहराए गए मान हटाएं. - यदि हेडर लाइनों की संख्या 200 से अधिक है:
शीर्षलेख पंक्तियाँ बहुत अधिक हैं। अनुरोध को 200 हेडर या उससे कम रखें. - यदि कोई हेडर लाइन गलत प्रारूप में है:
‹line›: हेडर लाइन अमान्य है। नाम का उपयोग करें: मूल्य. - यदि बॉडी की लंबाई सीमा से अधिक है:
इस उपकरण के लिए बॉडी बहुत लंबी है। इसे 1,000,000 अक्षरों से कम रखें. - यदि JSON पार्सिंग विफल हो जाती है:
मुख्य भाग JSON जैसा दिखता है लेकिन पार्स नहीं किया जा सका। - यदि URL-एन्कोडेड डेटा में त्रुटि है:
फ़ॉर्म बॉडी में अधूरा प्रतिशत एस्केप है।
गोपनीयता और डेटा प्रोसेसिंग
इस टूल का उपयोग करते समय आपकी गोपनीयता पूरी तरह सुरक्षित रहती है। आपका पेस्ट किया गया अनुरोध आपके ब्राउज़र में ही रहता है। BroBroGo इसे अपलोड या सेव नहीं करता। सारा विश्लेषण और प्रोसेसिंग स्थानीय रूप से आपके वेब ब्राउज़र के भीतर ही निष्पादित होती है।
अक्सर पूछे जाने वाले प्रश्न (FAQ)
क्या यह पेज लाइव वेबहुक कॉलबैक प्राप्त कर सकता है?
नहीं. निरीक्षण के लिए यहां कैप्चर किया गया अनुरोध चिपकाएं। पेज सार्वजनिक समापन बिंदु नहीं बनाता, कॉलबैक प्राप्त नहीं करता या जेनरेट किया गया परीक्षण अनुरोध नहीं भेजता।
मैं किस वेबहुक बॉडी फॉर्मेट का निरीक्षण कर सकता हूं?
JSON और URL-एन्कोडेड फॉर्म बॉडी का पता लगाया जाता है और स्वरूपित किया जाता है। अन्य निकाय सादे पाठ के रूप में रहते हैं इसलिए उपकरण XML, मल्टीपार्ट या बाइनरी सामग्री का अनुमान नहीं लगाता है।
क्या हस्ताक्षर फ़ील्ड ढूंढने से यह साबित होता है कि अनुरोध प्रामाणिक है?
नहीं. उपकरण केवल हस्ताक्षर और संबंधित टाइमस्टैम्प हेडर प्रदर्शित करता है। वास्तविक सत्यापन के लिए प्रेषक के सटीक हस्ताक्षर नियम, गुप्त या सार्वजनिक कुंजी और मूल अनुरोध बाइट्स की आवश्यकता होती है।