简单说说对Webhook的理解

在使用腾讯企业微信的时候,有生成过Webhook,这个基本的作用就是向这个URL发送一个请求,然后就会在对应的群里收到相应的信息,这个在企业微信中被称为机器人。那么,这个Webhook有什么难理解的地方么?

API是什么?

API的基本用法就是,当你需要某个信息的时候,向服务端主动请求数据,服务端收到你的请求后,再进行处理,并给你回复相关的信息,完成一个闭环。站在客户端的角度,就是从服务端拉(Pull)数据。

如果你想在某个事物有一个状态改变时,获得消息,在使用API的场景下,你需要不停地向服务端去请求,去问服务端有没有改变,服务端告诉你没有改变,然后你仍然要不停地请求,这中间有很多请求是很浪费资源的,因为只是因为想了解某个东西有没有改变,从而不停地向服务器提出请求,如果有很多个客户端不停地去向服务端请求,会造成资源的堵塞及浪费。

基本上述的场景,我们就要引出今天的主角:Webhook.

Webhook是什么?

在上述场景中,当有事件发生时,通过注册过的Webhook,此时服务器会向你注册过的Webhook发送一个请求,告诉你你关心的事情发生了。站在客户端的角度来看,就是服务端推(Push)给客户端。

一个生活化的例子:

像快递员送快递一样,Webhook 会在事件发生后主动“送货上门”,而不是像 API 那样让你去“自取”。

在阅读上述内容时,仍然可能有模糊不清的地方,主要在于客户端与服务端在Webhook中并不是统一的。

  1. 事件触发的机器:当事件触发时,这个事件是发生在某一台服务器上的,服务器知道这个事件。
  2. 客户端的定义:这里的客户端,并不是服务端对应的客户端。比如你使用企业微信的Webhook,那么客户端就是企业微信APP,当有事件处罚时,你的服务器可以向企业微信的Webhook发送一条请求,而企业微信收到请求后,会将消息通过推送机器推给你的客户端(企业微信APP),完成一个闭环。

Webhook的工作机制

注册回调地址

客户端向服务端配置一个地址(如 https://weixin.com/webhook),告诉服务端在事件发生时通知我。

事件触发

服务端监测到某个事件发生(如新消息到来、支付完成)。

数据推送

服务端通过 HTTP (HTTPS)请求(通常是 POST 方法)向回调地址发送事件信息。

客户端处理

客户端接收到请求后,解析数据并采取相应动作。

Webhook 和 API 的场景化说明

APIWebhook 通常是互补的

  • Webhook 用于实时推送事件数据。
  • API 用于客户端主动查询补充数据或操作服务。

举例说明:某聊天软件的应用

  • API:用户通过API主动发送消息给某个联系人A。
  • Webhook:当收到消息时,服务端推送事件通知到A所在的客户端,让A收到消息。

小结

通过上面的说明,可以知道Webhook具有灵活的接收方(回调地址(客户端)可以是与发起 API 请求的客户端不同的服务,甚至可能是完全不相关的服务),并在事件发生后,向特定的客户端发送通知与请求。

简单点说,就是事件触发,直接给接收方发送消息。因为本质是向Webhook的服务器发送消息,服务器再将消息转给客户端,可以理解成最终是发给了客户端。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇