Структура на заявките за уебкукички и ролята на заглавките
Уебкукичките (webhooks) са основен механизъм за асинхронна комуникация между различни софтуерни системи. Когато настъпи определено събитие в дадена платформа, тя изпраща HTTP заявка към предварително конфигуриран адрес (endpoint) на получателя. За да бъде обработена тази заявка правилно, е необходимо да се разбере нейната точна структура, която се състои от HTTP метод, заглавки (headers) и тяло (body).
Заглавките играят критична роля в комуникацията чрез уебкукички. Те пренасят метаданни, които указват типа на съдържанието, кодирането, както и важна информация за сигурността. Например, заглавката Content-Type съобщава на получаващия сървър как да интерпретира байтовете в тялото на заявката. Без правилно анализиране на заглавките, сървърът на получателя може да не успее да обработи изпратените данни.
Формати на тялото на уебкукичките
Тялото на заявката съдържа фактическите данни за събитието. В практиката се използват различни формати за структуриране на тези данни, като най-често срещаните са:
- JSON (JavaScript Object Notation): Най-популярният формат за съвременни API интерфейси поради своята четимост и лесна обработка.
- URL-encoded (данни от формуляр): Традиционен формат, при който данните се предават като двойки ключ-стойност, разделени с амперсанд.
Инструментът автоматично открива и форматира JSON и URL-кодирани тела на формуляри, за да улесни техния преглед. Всички останали типове тела се визуализират като обикновен текст. При обработката на JSON, данните се анализират чрез JSON.parse и се пренареждат, което означава, че оригиналните празни пространства и подредбата на полетата се губят.
За правилната диагностика на интеграциите е изключително важно да се запази точното необработено тяло, заснето преди всякакъв анализ от страна на сървъра. Всяка промяна в символите, включително празни места или нови редове, може да компрометира последващата проверка на данните.
Подписи и времеви печати при уебкукичките
Сигурността при уебкукичките често се гарантира чрез използването на криптографски подписи и времеви печати (timestamps), изпращани като заглавки. Изпращачът генерира подпис, като използва алгоритъм (например HMAC) върху тялото на заявката и споделена тайна.
Инструментът идентифицира подписи и свързани с тях заглавки на клеймото за време по шаблони в имената им, като например signature, hmac, digest и често срещани наименования за времеви печати.
Трябва да се прави ясна разлика между откриването на тези заглавки и реалната проверка на автентичността. Намирането на поле за подпис не доказва, че заявката е автентична — за реална проверка са необходими правилата за подписване на подателя, тайна или ключ и оригиналните байтове на заявката. Инструментът не изчислява HMAC, не изпълнява алгоритми, не проверява оригиналните байтове на полезния товар, тайни ключове, прозорци за повторение (replay windows) или специфични изисквания на доставчици.
Локално тестване с cURL
След като структурата на заявката е изяснена, разработчиците често трябва да възпроизведат събитието локално, за да тестват своя код. Инструментът генерира готова за копиране shell-quoted cURL команда, която е фиксирана към адрес http://localhost:3000/webhooks.
Тази команда позволява бързо симулиране на входящата уебкукичка директно към локалната среда за разработка, спестявайки време за ръчно конфигуриране на HTTP параметрите.
Входни параметри и ограничения на инструмента
За да извършите проверка, трябва да въведете следните данни в секцията Заявка за уебкукичка:
- Метод: Избира се от списък, включващ POST, PUT, PATCH, GET, DELETE.
- Заглавки: Въвеждат се в полето Заглавки, като се спазва правилото: едно заглавие на ред във формат Име: стойност. Максималният лимит е 200 непразни заглавни реда и общо 100 000 знака.
- Тяло: Поставя се в полето Тяло. Максималният лимит е 1 000 000 знака.
При работа с инструмента могат да възникнат следните съобщения за грешка при невалидни входни данни:
- "Първо поставете поне един хедър или тяло на заявка."
- "Заглавките са твърде дълги за този инструмент. Премахнете несвързани или повтарящи се стойности."
- "Тялото е твърде дълго за този инструмент. Дръжте го под 1 000 000 знака."
- "Има твърде много заглавни редове. Поддържайте заявката до 200 заглавия или по-малко."
- "
‹line›: Заглавен ред е невалиден. Използване на име: стойност." - "Тялото изглежда като JSON, но не може да бъде анализирано."
- "Тялото на формуляра съдържа непълен процент екраниране."
Поверителност и обработка на данните
Вашата поставена заявка остава във вашия браузър. BroBroGo не го качва или запазва. Цялата обработка, форматиране и генериране на cURL команди се извършва локално на вашето устройство.
Често задавани въпроси
Може ли тази страница да получава обратно извикване на уеб кукичка на живо?
Не. Поставете заснета заявка тук за проверка. Страницата не създава публична крайна точка, не получава обратни повиквания или не изпраща генерираната тестова заявка.
Кои основни формати на webhook мога да проверя?
JSON и URL-кодирани тела на формуляри се откриват и форматират. Други тела остават като обикновен текст, така че инструментът не отгатва XML, многочастно или двоично съдържание.
Намирането на поле за подпис доказва ли, че заявката е автентична?
Не. Инструментът показва само подпис и свързани с него заглавки на клеймото за време. Истинската проверка изисква точните правила за подписване на подателя, таен или публичен ключ и оригиналните байтове на заявката.