上篇文章讲到了get、post、put、delete等请求,为何有些公司建议后端接口都使用post请求呢?
首先谈谈个人的拙见,我认为并非都使用post请求就是好的。对于一些简单的查询请求用get也比较合适。为啥用post,有可能我们业务逻辑一开始比较简单,后续添加了很多复杂逻辑,可能查询条件添加了很多,也可能put用于修改,但是这个请求一些不同业务修改操作,restful则是强行统一资源,反而这时候使用post就会合适一些。
上篇文章也讲到了get请求与post请求的区别,临时回顾一下:
1、post更安全(不会作为url的一部分,不会被缓存、保存在服务器日志、以及浏览器浏览记录中)
2、post发送的数据更大(get有url长度限制)
3、post能发送更多的数据类型(get只能发送ASCII字符)
4、post比get慢
5、post用于修改和写入数据,get一般用于搜索排序和筛选之类的操作
6、get请求的是静态资源,则会缓存,如果是数据,则不会缓存
上述区别可以看出,post请求是在请求数据量大的时候使用比较合适,而get请求则是在请求静态资源或者一些简单的查询的时候比较合适。
业内的最佳实践:
1、幂等不修改服务器状态的用GET
2、幂等修改服务器状态的用PUT
3、不幂等修改服务器状态的用POST
总结:由于个人水平有限,目前自己开发接口时也并非按照啥业内最佳实践,目前使用的就是查询使用GET请求,然后其他的使用POST请求(只有少部分单表增删改查啥的才使用restful吧,反正我是用post)