网易首页 > 网易号 > 正文 申请入驻

为什么大厂接口全是POST?我偷看了他们的设计文档,发现事情并不简单

0
分享至

当你看到某个系统的API文档里,查询用POST、删除用POST、连"获取当前时间"都用POST时,第一反应是什么?"这团队不懂HTTP"?但如果是阿里、字节、腾讯的内部系统呢?你还敢这么断定吗?
01 一个反直觉的现象

我刚工作时, mentor 扔给我一份接口文档:

POST /user/getInfoPOST /user/createPOST /user/updatePOST /user/deletePOST /user/list

我当场懵了:"老师,这不是RESTful啊,GET/PUT/DELETE呢?"

他笑了笑:"你先想想,为什么大厂很多内部系统都这么写?"

这个问题,我花了三年才彻底想明白。

02 全POST的真实优势(别不承认,确实有)

✅ 优势1:开发效率拉满

不用纠结方法选择,不用和前端对齐语义。一套代码模板,复制粘贴改路径就行。

团队规模小的时候,这确实是生产力。

✅ 优势2:复杂查询的救星

当查询条件复杂到爆炸:

POST /order/search{ "status": [1, 2, 3],"createTimeRange": ["2024-01-01", "2024-06-30"],"tags": ["urgent", "vip"],"keyword": "iPhone 15","sort": [{"field": "price", "order": "desc"}], "page": 1,"size": 20}

用GET?URL直接超限,或者丑陋到无法维护。

POST的Body想塞多复杂都行,这是硬优势。

✅ 优势3:天然防缓存,意外的好用

GET容易被浏览器、CDN、代理层层缓存,调试时经常怀疑人生。

POST默认不走缓存, 开发阶段省掉很多"为什么数据没更新"的Bug。

✅ 优势4:参数隐蔽性(虽然不等于安全)

敏感参数放Body,不会出现在浏览器历史、服务器日志(URL部分)、referer传递中。

这不是加密,只是降低"无意泄露"的概率。

✅ 优势5:绕过奇葩网络环境

某些企业代理、老旧网关、安全设备:

对GET长度限制死板(超过1KB直接截断)

对PUT/DELETE直接返回405

对POST却"开绿灯"

全POST是生存策略,不是设计美学。

03 全POST的隐性代价(这些坑会迟到,但不会缺席)

❌ 代价1:幂等性地狱

POST在HTTP语义中就是"非幂等"的。

用户狂点提交,网络抖动自动重试,定时任务重跑... 同样的请求执行多次,副作用叠加。

方法

重复请求结果

风险

GET

相同

PUT

相同(覆盖)

POST

叠加

(再创建一条)

解决方案 :自己实现幂等键(Idempotency-Key),但多数全POST系统压根没做。

❌ 代价2:性能税:缓存完全失效

同样的查询请求:

GET /user/10086 → 浏览器缓存 → CDN缓存 → 0ms响应POST /user/getInfo { "id": 10086 } → 直达服务器 → 数据库查询 → 50ms+

高并发读场景,这就是10倍性能差距的来源。

❌ 代价3:SEO与爬虫绝缘

搜索引擎: 我只抓GET。

你的商品详情、文章页面用POST加载? 百度/Google永远索引不到。

❌ 代价4:调试与监控成本

Nginx日志默认只记URL,POST的Body看不到:

127.0.0.1 - - [10/Feb/2026:14:32:10] "POST /api/gateway HTTP/1.1" 200 42

出问题排查:看应用日志 → 找TraceID → 查Body内容,链路长一倍。

❌ 代价5:HTTP语义体系崩坏

RESTful设计用方法区分动作,全POST用URL区分:

POST /user/create vs POST /usersPOST /user/update vs PUT /users/1POST /user/delete vs DELETE/users/1POST /user/get vs GET/users/1

URL动词化,接口数量膨胀,文档维护成本上升。

❌ 代价6:前端生态割裂

现代前端工具链对GET有优化:

SWR/React Query的自动缓存、去重

浏览器预加载、预渲染

CDN边缘计算

全POST = 自动放弃这些红利。

04 决策框架:什么时候全POST合理?

场景

建议

内部系统、管理后台

✅ 全POST可接受,开发快为主

对公API、开放平台

❌ 遵循REST规范,方法语义清晰

复杂查询条件(>10个参数)

✅ POST更实用

高频读、QPS>1万

❌ 必须用GET+缓存

需要SEO的页面

❌ GET是必须的

网络环境受限(老旧网关)

✅ 全POST是妥协方案

严格幂等性要求(支付、下单)

❌ POST需额外幂等设计,或换PUT

05 如果坚持全POST,怎么降低伤害?

方案1:幂等键强制落地

POST /order/createIdempotency-Key:550e8400-e29b-41d4-a716-446655440000{ "userId": 100, "amount": 99.9 }

服务端用Redis锁或数据库唯一索引保证: 同样的Key只执行一次。

方案2:读接口分层设计

POST /order/search → 复杂查询,用POSTGET/order/12345 → 单条详情,用GET(可缓存)

不是非黑即白,关键读路径保留GET。

方案3:CDN缓存 workaround

如果必须用POST但又想缓存:

POST /product/listCache-Control:max-age=60

需要CDN/网关支持POST缓存(如Cloudflare、阿里云配置),非默认能力。

06 一句话总结

全POST是工程妥协的产物,不是架构设计的终点。

它用 规范性的损失 ,换取了 开发效率和恶劣环境的适应性 。

适合 :内部系统、复杂查询、受限网络、快速迭代 不适合 :高并发读、SEO场景、开放API、严格幂等要求

最好的设计是"有所为有所不为" ——该POST时POST,该GET时GET,而不是一刀切。

你们团队是全POST派还是规范REST派?遇到过哪些坑?

评论区聊聊

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
坚持慢充3年电池只剩82%,原来很多车主都充错了

坚持慢充3年电池只剩82%,原来很多车主都充错了

华庭讲美食
2026-02-15 10:03:52
断层收视第一,骂声全网刷屏!2026辽视春晚,烂得彻头彻尾

断层收视第一,骂声全网刷屏!2026辽视春晚,烂得彻头彻尾

另子维爱读史
2026-02-16 12:49:32
北京之夜:王楚然胜白鹿,明艳大气显价值

北京之夜:王楚然胜白鹿,明艳大气显价值

老头的传奇色彩
2026-02-17 08:35:25
硬核新春祝福 国防部:中国军人时刻准备着

硬核新春祝福 国防部:中国军人时刻准备着

看看新闻Knews
2026-02-17 12:20:05
彻底撕破脸!拉什福德遭痛批:更衣室彻底变样,场上摆烂太离谱

彻底撕破脸!拉什福德遭痛批:更衣室彻底变样,场上摆烂太离谱

奶盖熊本熊
2026-02-17 06:12:26
美宣布对华加税160%!话音刚落,特朗普通告全球:中美关系非常好

美宣布对华加税160%!话音刚落,特朗普通告全球:中美关系非常好

凡知
2026-02-16 21:56:11
软件崩完物流崩!AI正在血洗股市,普通人只剩这一条活路

软件崩完物流崩!AI正在血洗股市,普通人只剩这一条活路

侃故事的阿庆
2026-02-16 22:18:13
陈妍希年夜饭五菜一汤很节俭,儿子不在身边,妈妈下厨她也很幸福

陈妍希年夜饭五菜一汤很节俭,儿子不在身边,妈妈下厨她也很幸福

阿讯说天下
2026-02-17 01:05:49
金价真是变天了!2月17日全国金店最新价出炉,现在入手划算吗?

金价真是变天了!2月17日全国金店最新价出炉,现在入手划算吗?

奇思妙想生活家
2026-02-16 20:13:29
泪目!隋文静韩聪互相鞠躬+抱拳告别 最好的自由滑 最伟大的葱桶

泪目!隋文静韩聪互相鞠躬+抱拳告别 最好的自由滑 最伟大的葱桶

念洲
2026-02-17 05:56:19
四川成都一佳人好漂亮, 身高169cm,体重48kg 美的让人移不开眼

四川成都一佳人好漂亮, 身高169cm,体重48kg 美的让人移不开眼

喜欢历史的阿繁
2026-02-07 14:21:17
小品之所以被春晚遗弃,是因历年来的小品相声都过于“尖锐”?

小品之所以被春晚遗弃,是因历年来的小品相声都过于“尖锐”?

魔都姐姐杂谈
2026-02-17 10:45:24
程序正义与结果正义,周立波在美国教科书胜利,在国内被全面封杀

程序正义与结果正义,周立波在美国教科书胜利,在国内被全面封杀

月满大江流
2026-02-17 11:53:52
现货黄金日内跌2%,现报4889.91美元/盎司

现货黄金日内跌2%,现报4889.91美元/盎司

每日经济新闻
2026-02-17 13:26:22
女子假信佛与多位高僧发生不当关系,秘密录制5600段视频。

女子假信佛与多位高僧发生不当关系,秘密录制5600段视频。

特约前排观众
2026-02-09 00:05:05
春晚第一波梗出现了,网友:笑疯了

春晚第一波梗出现了,网友:笑疯了

91.6陕西交通广播
2026-02-16 22:55:14
就没有钱解决不了的事情吗?网友:钱可以解决99%穷人的问题

就没有钱解决不了的事情吗?网友:钱可以解决99%穷人的问题

带你感受人间冷暖
2026-01-26 00:10:10
为啥就中国人特别习惯站着的时候伸出去一条腿?这三七步咋来的?

为啥就中国人特别习惯站着的时候伸出去一条腿?这三七步咋来的?

向航说
2026-02-16 03:50:03
马斯克重申:特斯拉Cybercab今年4月投产,无方向盘和踏板

马斯克重申:特斯拉Cybercab今年4月投产,无方向盘和踏板

IT之家
2026-02-17 08:21:28
不查不知道一查吓一跳,掌管少林寺38年的释永信,私下到底多享受

不查不知道一查吓一跳,掌管少林寺38年的释永信,私下到底多享受

混沌录
2026-02-16 21:17:08
2026-02-17 14:00:49
娱乐督察中
娱乐督察中
独乐乐不如众乐乐
278文章数 20642关注度
往期回顾 全部

科技要闻

春晚这些机器人是怎样做到的?

头条要闻

宇树机器人春晚舞台上“摔倒” 王兴兴发声

头条要闻

宇树机器人春晚舞台上“摔倒” 王兴兴发声

体育要闻

谷爱凌:'不小心"拿到了银牌 祝大家马年大吉

娱乐要闻

春晚三大感人瞬间:周深于和伟上榜

财经要闻

大年初一,这三件事很不寻常

汽车要闻

问界M6更多信息:乾崑智驾ADS4.0+鸿蒙座舱5.0

态度原创

手机
教育
时尚
本地
军事航空

手机要闻

告别实体卡!iPhone 18 Pro/iPhone Fold全系列无卡槽:仅支持eSIM

教育要闻

高考红包数字揭秘!这样送才吉利

今年春天最流行的4组配色,过年穿时髦又高级!

本地新闻

春花齐放2026:《骏马奔腾迎新岁》

军事要闻

慕安会美国角色逆转 中国议题"打满全场"

无障碍浏览 进入关怀版