公司规定所有接口都用 POST请求,这是为什么?

API设计:为何不应所有接口都用POST请求?

最近在逛知乎的时候发现一个有趣的问题:《公司规定所有接口都用 post 请求,这是为什么?》

原问题:https://www.zhihu.com/question/336797348

看到这个问题的时候其实我也挺有感触的,因为我也曾经这样问过我自己。在19的时候接到一个项目是从零开始搭建一个微服务,当时就有了解过接口的一些规范,比如耳熟能详的Restful规范,就被应用到这个微服务项目中。

今天再次看到这个问题,我也有了一些新的理解和感触,临时回顾了一下getpost的请求的一些区别:

  1. post更安全(不会作为url的一部分,不会被缓存、保存在服务器日志、以及浏览器浏览记录中)

  2. post发送的数据更大(get有url长度限制)

  3. post能发送更多的数据类型(get只能发送ASCII字符)

  4. post比get慢

  5. post用于修改和写入数据,get一般用于搜索排序和筛选之类的操作

  6. get请求的是静态资源,则会缓存,如果是数据,则不会缓存

查看上面的区别,就会发现post在发送数据量大的请求时优势很显示,get则更适合获取静态资源、简单的查询等接口。

我个人在开发接口的时候也会注意,将简单的查询请求使用get方法,其他增、删、改、复杂的查询请求都可以使用post,但不会像题主的公司一样全部使用post

网友程墨Morgan提出如果是自己会按照『业界最佳实践』制定规范:

de36ca8dbf2c8bff019855852e3ee0e4.png

另外一个知友提出:就是为了迁就低水平不思进取的架构师和前后端程序员们。

244562aa289014866563c9f5d1c42341.png

对此,如果是你来设计公司的API规范,会规定所有接口都用 post 请求吗,这是为什么?

-END-

PS:如果觉得我的分享不错,欢迎大家随手点赞、在看。


 

 关注公众号:Java后端编程,回复下面关键字 


 

要Java学习完整路线,回复  路线 

缺Java入门视频,回复: 视频 

要Java面试经验,回复  面试 

缺Java项目,回复: 项目 

进Java粉丝群: 加群 


 

PS:如果觉得我的分享不错,欢迎大家随手点赞、在看。


 

(完)

加我"微信" 获取一份 最新Java面试题资料

812330dc38109758a651715651c83fbe.png

请备注:666,不然不通过~

最近好文

1、Kafka 3.0重磅发布,弃用 Java 8 的支持!

2、你只会用 ! = null 判空?嘿嘿!

3、这次,Swagger-ui遇到对手了!

4、上午写了一段代码,下午就被开除了...

5、抖音项目Semi Design涉嫌抄袭?技术团队发文致歉!


 

345f4d95b516ae76aee05d9cbc105014.png


 
最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。
获取方式:关注公众号并回复 java 领取,更多内容陆续奉上。

明天见(。・ω・。)ノ♡

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值