वेबहुक क्या है?
वेबहुक वह HTTP रिक्वेस्ट है जो कोई सर्विस आपके रजिस्टर किए URL पर किसी घटना पर भेजती है — भुगतान सेटल हुआ, मैसेज डिलीवर हुआ, बिल्ड पूरा हुआ — ताकि आपका सिस्टम पोलिंग के बजाय घटनाओं पर प्रतिक्रिया दे। इसे टेस्ट करने का मतलब है जो वास्तव में भेजा गया उसे कैप्चर करना (मेथड, हेडर, बॉडी), रिट्राई और क्रम जाँचना, और उस सिग्नेचर को सत्यापित करना जो साबित करता है कि कॉल भेजने वाले से ही आई है।
सुरक्षा नोट: वेबहुक एंडपॉइंट एक सार्वजनिक URL है जिस पर कोई भी पोस्ट कर सकता है। भेजने वाले के सिग्नेचर (आमतौर पर कच्ची बॉडी पर HMAC) को कॉन्स्टेंट-टाइम तुलना से सत्यापित करें, पुराने टाइमस्टैम्प अस्वीकार करें, और पेलोड को अविश्वसनीय इनपुट मानें।
गाइड पढ़ें: API टेस्टिंग क्या है? REST API कैसे टेस्ट करें
HTTP रिक्वेस्ट इंस्पेक्टर कैसे इस्तेमाल करें
- एक capture URL बनाएँ।
- जिस क्लाइंट को डीबग कर रहे हैं उससे रिक्वेस्ट भेजें (या URL ब्राउज़र टैब में खोलें)।
- रिक्वेस्ट चुनें; raw व्यू पूरा मैसेज दिखाता है और बाक़ी टैब उसे टुकड़ों में बाँटते हैं।
- तुलना करें कि आपका कोड असल में क्या भेजना चाहता था।
HTTP रिक्वेस्ट इंस्पेक्टर की खूबियाँ
- रिक्वेस्ट वैसे देखें जैसे सर्वर को मिलीं: method, path, query, हेडर (credential वाली वैल्यू [redacted] के रूप में दिखती हैं; Cookie और cf-* रिकॉर्ड नहीं होते), बॉडी, क्लाइंट IP
- कच्चा HTTP मैसेज व्यू डिफ़ॉल्ट रूप से खुलता है; JSON और form बॉडी माँगने पर डिकोड होती हैं
- हर क्लाइंट के साथ काम करता है — मोबाइल SDK, स्क्रिप्ट, प्रॉक्सी, ब्राउज़र, IoT डिवाइस
- आपका ब्राउज़र क्या भेजता है यह देखने के लिए URL नए टैब में खोलें
- हेडर, payload या cURL प्रतिकृति कॉपी करें
HTTP रिक्वेस्ट इंस्पेक्टर का उदाहरण
मोबाइल SDK की रिक्वेस्ट
इनपुट:
App → PUT https://www.mutqansoft.sa/hooks/3f9c…/v1/devices/42?locale=arआउटपुट:
PUT /v1/devices/42?locale=ar HTTP/1.1
user-agent: MyApp/3.2.1 (Android 14)
content-type: application/json
x-app-token: [redacted]
{"pushToken":"…","timezone":"Asia/Riyadh"}HTTP रिक्वेस्ट इंस्पेक्टर के बारे में अक्सर पूछे जाने वाले सवाल
यह किस काम आता है?
किसी भी HTTP क्लाइंट (मोबाइल SDK, स्क्रिप्ट, प्रॉक्सी, IoT डिवाइस) को इस URL पर लगाएँ और देखें कि सर्वर तक क्या पहुँचता है: method, path, query, हेडर (credential वाली वैल्यू [redacted] के रूप में; Cookie और cf-* रिकॉर्ड नहीं होते), बॉडी, IP — कच्चा HTTP व्यू इसे एक ही मैसेज के रूप में दिखाता है।
क्या मैं URL ब्राउज़र में खोल सकता हूँ?
हाँ, "Open in new tab" आपके ब्राउज़र से एक GET भेजता है, ताकि आप देख सकें कि ब्राउज़र डिफ़ॉल्ट रूप से क्या भेजता है।
क्या कुछ स्थायी रूप से स्टोर होता है?
कैप्चर की गई रिक्वेस्ट सिर्फ़ तब तक रहती हैं जब तक endpoint ख़त्म नहीं होता (24 घंटे) या आप उसे हटा नहीं देते, और वे किसी और के साथ कभी साझा नहीं की जातीं।
कैप्चर URL कौन-से HTTP method और कितनी बड़ी बॉडी स्वीकार करता है?
कोई भी method (GET, POST, PUT, PATCH, DELETE, HEAD या OPTIONS) URL पर या किसी sub-path पर, और CORS चालू है ताकि ब्राउज़र से fetch() कॉल चलें। बॉडी 256 KB तक सेव होती है (बड़ी बॉडी काटकर फ़्लैग होती है), हर endpoint ताज़ा 200 रिक्वेस्ट रखता है (60/मिनट तक), और हर कॉल को 200 JSON acknowledgement मिलता है।
संदर्भ
- RFC 9421: HTTP Message SignaturesHTTP मैसेज पर हस्ताक्षर करने का मानक तरीका ताकि रिसीवर उनके स्रोत और अखंडता की जाँच कर सके — आधुनिक वेबहुक सिग्नेचर का आधार।
- RFC 2104: HMAC: Keyed-Hashing for Message AuthenticationHMAC संरचना: एक सीक्रेट की और हैश फ़ंक्शन मिलकर मैसेज ऑथेंटिकेशन कोड कैसे बनाते हैं।
- OWASP Cheat Sheet Series: REST SecurityREST API के सुरक्षा नियम: HTTPS, हर रिक्वेस्ट पर ऑथेंटिकेशन, इनपुट वैलिडेशन, सुरक्षित एरर रिस्पॉन्स, रेट लिमिटिंग।