Webhook 是指当某个服务中发生特定事件时,自动向预先注册的 URL 发送 HTTP 请求 (通常为 POST) 的机制。就像"有事请打这个电话通知我"一样,实现了事件驱动的服务间联动。
Webhook 的反义词是轮询 (Polling)。轮询是定期发送"有新消息吗?"的查询方式,即使没有变化也会产生请求。Webhook 只在事件发生时才发送通知。
在提供 Webhook 的短链接服务中,应用场景之一是当链接被点击时接收通知。例如,将重要活动链接的点击事件推送到 Slack 频道,或将点击数据自动写入自有数据库。
Webhook 的实现需要注意几个要点。第一,接收端的端点通过 HTTPS 公开。Stripe 要求注册的端点是可公开访问的 HTTPS URL (据 2026 年 10 月时 Stripe 的文档)。第二,需要考虑 Webhook 发送失败时的重试处理。重试的次数和期限因服务而异,接收端宕机期间的事件可能会丢失。第三,通过验证签名 (如 HMAC-SHA256) 来确认 Webhook 的发送方。
使用 Webhook 的服务包括 GitHub (推送通知)、Stripe (支付完成通知)、Slack (消息发送) 等。