不知道大家有没有注意到,我们在远程调用被人公司的api接口时,这些接口好像都为post请求。并且我们在提供api接口时,也都会用post请求。
甚至有的公司要求员工所有请求都要用post请求,当然这并不规范,那这又是为什么呢?
post请求与get请求的区别:
-
post 更安全(不会作为 url 的一部分,不会被缓存、保存在服务器日志、以及浏览器浏览记录中)
-
post 发送的数据更大(get 有 url 长度限制)
-
post 能发送更多的数据类型(get 只能发送 ASCII 字符)
-
post 比 get 慢
-
post 用于修改和写入数据,get 一般用于搜索排序和筛选之类的操作
-
get 请求的是静态资源,则会缓存,如果是数据,则不会缓存
通过以上区别,我们可以得出结论。在开发公司对外的接口时,我们应该全部使用post请求。我认为最主要的原因是他不会将请求参数直接体现到url中。同时开发公司内部的接口时,我认为我们还是应该遵守HTTP的请求规范。
什么是HTTP请求规范?
1. 根据HTTP规范,GET用于信息获取,而且是安全的和幂等的
2. POST一般用于创建数据,不是安全和幂等的
3. PUT一般用于创建或完整更新数据,而且是安全和幂等的
4. DELETE一般用于删除数据,而且是安全和幂等的
什么是幂等?
在编程中.一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。