常见的API通信协议有哪些
在开发应用、对接服务时,API是绕不开的一环。比如你写个天气小程序,要从服务器拿数据,就得调用API。那这些API靠什么“说话”?其实就是靠通信协议。目前主流的API接口主要支持几种协议:HTTP/HTTPS、WebSocket、gRPC 和 MQTT。
HTTP/HTTPS 是最常用的
绝大多数Web API都基于HTTP或更安全的HTTPS协议。比如你在手机App里登录账号,App会向服务器发送一个HTTP POST请求,带上用户名密码,服务器验证后返回用户信息。这种请求简单明了,工具也多,浏览器、curl、Postman都能直接测。
一个典型的HTTP请求长这样:
GET /api/v1/users/123 HTTP/1.1\nHost: api.example.com\nAuthorization: Bearer abc123\nAccept: application/json响应一般也是JSON格式:
{"id": 123, "name": "zhangsan", "email": "zhangsan@example.com"}WebSocket 适合实时交互
如果你做的是聊天室、股票行情推送这类需要“服务器主动发消息”的功能,HTTP就不够用了。它得靠客户端不断轮询,效率低、延迟高。这时候就得上WebSocket。
WebSocket建立连接后,双方可以随时互发数据。比如你在网页上看在线客服,对方一回复,消息立马弹出,背后很可能就是WebSocket在跑。
gRPC 用于高性能内部通信
大一点的公司,微服务之间调用常用gRPC。它底层用HTTP/2传输,接口定义用Protocol Buffers(protobuf),数据小、解析快。比如订单服务要查用户信息,可能不会走HTTP,而是直接调用户服务的gRPC接口。
和传统REST API比,gRPC更适合服务间高频、低延迟的通信,但对前端不太友好,一般不直接暴露给App或网页。
MQTT 常见于物联网场景
如果你接触过智能家居,比如用手机控制灯泡开关,很可能用的就是MQTT。这个协议专为低带宽、不稳定网络设计,设备耗电少,能长时间连着服务器。
比如一个温湿度传感器,每隔5分钟往MQTT Broker发一次数据,APP订阅这个主题就能实时看到数值。它的特点是轻量、支持发布/订阅模式。
不同协议适应不同场景。选哪个,得看你要做什么。普通Web开发从HTTP/HTTPS入手就够了;做实时功能考虑WebSocket;搞微服务架构可以看看gRPC;玩物联网设备,MQTT几乎是标配。