ابزار «بازرس درخواست Webhook» به شما امکان میدهد متد، هدرها و بدنه یک درخواست وبهوکی ضبطشده را برای بررسی ساختار آن جایگذاری کنید و یک دستور cURL قابل کپی جهت تست محلی بسازید. این ابزار به شما کمک میکند تا قالب بدنه درخواست و وجود هدرهای رایج امضا یا مهر زمانی را بررسی کنید.
ساختار درخواستهای وبهوکی و نقش هدرها
در ارتباطات مبتنی بر وبهوگ، فرستنده دادهها را از طریق پروتکل HTTP به یک آدرس مشخص ارسال میکند. هر درخواست وبهوکی از سه بخش اصلی تشکیل شده است: متد (مانند POST یا PUT)، هدرها و بدنه (Body).
هدرها نقش حیاتی در پردازش وبهوگ ایفا میکنند؛ زیرا اطلاعات متاداده مانند نوع محتوا (Content-Type)، شناسه رویداد و اطلاعات امنیتی را حمل میکنند. بررسی دقیق این هدرها به توسعهدهندگان کمک میکند تا پیش از پردازش بدنه، از ساختار و اصالت تقریبی درخواست مطلع شوند.
ورودیهای ابزار
برای بررسی یک درخواست، اطلاعات زیر را در بخش «درخواست Webhook» وارد کنید:
- روش: متد HTTP درخواست را از میان گزینههای POST، PUT، PATCH، GET و DELETE انتخاب کنید.
- هدرها: هدرهای درخواست را وارد کنید. قوانین وارد کردن هدرها عبارتند از:
- هر هدر باید در یک خط و به قالب
Name: valueوارد شود. - حداکثر تعداد خطوط هدر غیرخالی، 200 خط است.
- حداکثر طول مجاز برای کل هدرها 100,000 کاراکتر است.
- هر هدر باید در یک خط و به قالب
- بدنه: بدنه دقیق و خام گرفتهشده را قبل از هرگونه تجزیه سمت سرور وارد کنید. حداکثر طول مجاز برای بدنه 1,000,000 کاراکتر است.
خروجیهای ابزار
پس از بررسی درخواست، خروجیهای زیر تولید میشوند:
- بدنه فرمت شده: اگر بدنه درخواست از نوع JSON یا دادههای فرم URL-encoded باشد، به صورت مرتبشده نمایش داده میشود. در صورت خالی بودن بدنه، عبارت
(بدنه خالی)نمایش داده میشود. - فیلدهای امضا: لیستی از هدرهای رایج امضا یا مهر زمانی وبهوگ که در درخواست یافت شدهاند نمایش داده میشود. اگر هیچ هدر منطبقی پیدا نشود، عبارت
هیچ امضای مشترک یا سربرگ مهر زمانی وب هوک یافت نشد.نشان داده میشود. - تست محلی cURL: یک دستور cURL آماده برای اجرا در محیط خط فرمان تولید میشود که آدرس مقصد آن به صورت ثابت روی
http://localhost:3000/webhooksتنظیم شده است.
قوانین پردازش و موارد خاص
این ابزار بر اساس قوانین مشخصی دادههای ورودی را پردازش میکند:
- قالببندی بدنه: ابزار به طور خودکار بدنههای JSON و URL-encoded را شناسایی و مرتب میکند. سایر انواع بدنه به صورت متن ساده (Plain text) باقی میمانند.
- تغییر در ساختار JSON: بدنههای JSON با استفاده از تابع
JSON.parseتجزیه و بازآرایی میشوند. این کار باعث میشود فاصلههای خالی (Whitespace) اصلی و ترتیب اولیه فیلدها تغییر کند. - شناسایی هدرهای امنیتی: ابزار هدرهای امضا و مهر زمانی مرتبط را بر اساس الگوهای نامگذاری مانند
signature،hmac،digestو نامهای رایج مهر زمانی شناسایی میکند. این ابزار هیچگونه محاسبه HMAC، اجرای الگوریتم، بررسی بایتهای اصلی بدنه، بررسی کلید مخفی، بررسی پنجره تکرار (Replay window) یا تأیید اعتبار اختصاصی ارائهدهندگان را انجام نمیدهد.
خطاهای احتمالی در زمان بررسی
در صورت عدم رعایت محدودیتها یا وجود خرابی در دادههای ورودی، ابزار خطاهای زیر را نمایش میدهد:
- اگر هیچ دادهای وارد نشده باشد:
ابتدا حداقل یک هدر یا بدنه درخواست را جایگذاری کنید. - اگر طول هدرها از حد مجاز فراتر رود:
هدرها برای این ابزار خیلی طولانی هستند. مقادیر نامرتبط یا تکراری را حذف کنید. - اگر طول بدنه بیش از حد مجاز باشد:
بدنه برای این ابزار خیلی بلند است. آن را زیر 1,000,000 کاراکتر نگه دارید. - اگر تعداد خطوط هدر بیش از حد مجاز باشد:
خطوط سرصفحه خیلی زیاد است. درخواست را تا 200 سرصفحه یا کمتر نگه دارید. - اگر خطی از هدر قالب نادرستی داشته باشد (به جای شماره خط، شماره مربوطه قرار میگیرد):
‹line›: خط سرصفحه نامعتبر است. استفاده از نام: ارزش. - اگر بدنه شبیه JSON باشد ولی ساختار آن مشکل داشته باشد:
بدنه شبیه JSON است اما قابل تجزیه نیست. - اگر بدنه فرم دارای کاراکتر درصد ناقص باشد:
بدنه فرم حاوی درصد فرار ناقص است.
حریم خصوصی و پردازش دادهها
درخواست پیست شده شما در مرورگر شما باقی میمانند. BroBroGo آن را آپلود یا ذخیره نمیکند. تمام فرآیند پردازش و قالببندی به صورت محلی در مرورگر کاربر انجام میشود.
سوالات متداول
آیا این صفحه می تواند یک پاسخ تماس زنده وب هوک دریافت کند؟
خیر. یک درخواست ثبت شده را برای بازرسی در اینجا بچسبانید. این صفحه یک نقطه پایانی عمومی ایجاد نمی کند، پاسخ تماس دریافت نمی کند یا درخواست آزمایش ایجاد شده را ارسال نمی کند.
کدام قالبهای بدنه وب هوک را میتوانم بررسی کنم؟
فرم های JSON و URL کدگذاری شده شناسایی و قالب بندی می شوند. بدنه های دیگر به صورت متن ساده باقی می مانند تا ابزار XML، محتوای چند بخشی یا باینری را حدس بزند.
آیا یافتن فیلد امضا صحت درخواست را ثابت می کند؟
خیر. ابزار فقط امضا و سرصفحههای مهر زمانی مرتبط را نشان میدهد. تأیید واقعی به قوانین امضای دقیق فرستنده، کلید مخفی یا عمومی و بایت های درخواست اصلی نیاز دارد. یافتن فیلد امضا اصالت درخواست را اثبات نمیکند؛ تایید واقعی به قوانین امضای فرستنده، رمز یا کلید، و بایتهای اصلی درخواست نیاز دارد.