Skip to content
EN

Что такое Webhook

Коротко:

Webhook ("веб-хук") — механизм, при котором сервис А делает HTTP POST-запрос на ваш URL когда что-то происходит. Противоположен polling: вместо "вы спрашиваете каждые N сек есть ли новое" — "сервис сам шлёт уведомление". Типичные use-case: платежи (Stripe/YooKassa webhook на /payment/completed), CI/CD (GitHub push → Jenkins), мониторинг (Enterno → ваш webhook при падении сайта).

Ниже: подробности, пример, смежные термины, FAQ.

Проверить свой сайт →

Подробности

  • Receiver — публичный URL принимающий POST с JSON
  • HMAC-подпись заголовок (X-Signature-256) — защита от подделки
  • Replay-protection: timestamp + nonce в payload
  • Retry с exponential backoff — не все receivers всегда доступны
  • Idempotency: receiver должен быть готов получить тот же webhook 2+ раза

Пример

POST /webhook HTTP/1.1
X-Signature-256: sha256=abc...
Content-Type: application/json

{"event":"payment.succeeded","id":"pi_123"}

Смежные термины

Что такое Webhook?

Webhook — это механизм, позволяющий приложениям обмениваться данными в режиме реального времени, инициируя HTTP-запросы на заранее заданные URL. В 2026 году webhooks становятся стандартом для интеграции различных сервисов, обеспечивая низкую задержку и эффективный обмен данными. Например, при обновлении статуса заказа в системе электронной коммерции, webhook может отправить уведомление на другой сервис для автоматического выполнения действий, таких как уведомление клиента по электронной почте.

Как работает Webhook?

Webhook работает на основе события. Когда происходит определенное событие (например, создание нового пользователя или изменение статуса заказа), приложение отправляет HTTP-запрос (обычно POST) на заранее указанный URL. Этот запрос содержит данные о событии в формате JSON или XML. Получающее приложение обрабатывает запрос и выполняет необходимые действия.

Стандартный процесс работы webhook включает несколько шагов:

  1. Регистрация: Приложение A регистрирует URL вебхука в приложении B.
  2. Событие: Происходит событие, которое инициирует отправку данных.
  3. Отправка запроса: Приложение A отправляет HTTP-запрос на зарегистрированный URL.
  4. Обработка данных: Приложение B принимает запрос и выполняет необходимые действия.

Для настройки webhook в своем приложении, вы можете использовать следующий пример на языке Python с библиотекой Flask:

from flask import Flask, request
app = Flask(__name__)

@app.route('/webhook', methods=['POST'])
def webhook():
    data = request.json
    # Обработка полученных данных
    return '', 200

if __name__ == '__main__':
    app.run(port=5000)

Применение Webhook в 2026 году

В 2026 году webhook находит широкое применение в различных сферах, включая E-commerce, CRM-системы и автоматизацию процессов. Например, в системах управления проектами, webhook могут использоваться для автоматического обновления статуса задач, уведомления команды о изменениях и интеграции с другими сервисами, такими как Slack или Microsoft Teams.

Рассмотрим практический пример использования webhook для интеграции системы управления заказами с CRM:

  • Создайте webhook в системе управления заказами, указывая URL вашего CRM.
  • Настройте событие, которое будет инициировать отправку данных (например, создание нового заказа).
  • В CRM настройте обработку входящих данных, чтобы автоматически создавать или обновлять записи клиентов.

Кроме того, webhook активно используются в DevOps для автоматизации процессов развертывания и мониторинга. Например, при каждом коммите в репозиторий, webhook может инициировать процесс CI/CD, автоматически тестируя и развертывая приложение.

Больше по теме

Часто задаваемые вопросы

Webhook или polling?

Webhook = почти realtime + меньше нагрузки на обе стороны. Polling = проще для тестов + работает через firewall (outgoing only). Для production — webhook.

Как проверить что webhook от того сервиса?

Проверяйте HMAC-подпись через shared secret. Stripe/YooKassa документируют конкретный алгоритм (обычно HMAC-SHA256).

Что делать если receiver был down?

Сервис должен retry 3-5 раз с exponential backoff. После финального fail — сохранить в dead-letter queue.

Запустить инструмент, который описан в этой статье

Бесплатный тариф — 10 мониторов, проверки каждые 5 мин, без карты. Платные тарифы — интервал от 1 минуты и проверки из нескольких регионов.