打开调试工具我们可以看到除了get和post,还有put、delete方法,那为啥只用到get和post呢?
我们先搞清楚这些方法的用处,在讨论它们的使用。
GET:从服务器检索内容或者实体在HTTP术语。GET请求通常不包含请求体,但是是被允许的。一些网络缓存设备仅仅GET方式响应。GET请求通常不会导致服务器数据变化。
POST:用客户端提供的数据更新实体。一个POST请求通常在请求体中包含信息,这些信息在应用服务器是可以被使用的。POST请求被认为是非幂等性的,意味着如果多个请求被处理和仅仅一个请求被处理结果是不一样的。
PUT:添加一个由客户端提供的数据实体。一个PUT请求通常在请求体包含服务器用来创建新实体用的信息。通常,PUT请求被认为是幂等性的,意味着请求可以反复使用相同应用的结果。
DELETE:删除一个基于URI内容的实体或者由客户端提供的请求体。DELETE请求通常在REST服务请求接口。
其实还有其他一些方法,多是辅助使用的,这里就不谈论了。
可以看到这四个方法分别对应增、删、改、查功能,下面来逐个分析。
GET请求,提供查询功能,可将查询条件拼接在url后面。url是有字符长度限制的,长度根据浏览器和服务器决定,其次由于url是完全暴露的,从安全角度看,涉及重要信息或资源的接口,不推荐使用。
POST请求,是非幂等性的,可局部更新资源也可全量更新资源,非常灵活,而且数据传输使用json格式,非常直观易懂,这也是很多接口采用POST请求的原因。
PUT请求,是幂等性,请求多次结果都是相同的,在实用时有很大的局限性,一般用于非常重要的防重的操作接口,比如发起支付,由于客户端的抖动或其他原因导致重复请求接口,这时可以用PUT请求,但这也导致很多逻辑处理必须在服务器实现,大大降低了服务器的效率,其实防止重复请求接口可以用其他的简便方法处理,这里就不展开谈论了。
DELETE请求,也是幂等性,一般很少有需要删除资源的需求,其次在实用中也很鸡肋。
通过以上分析可以看出,使用最多的POST请求,确实是因为它使用方便,当然也更开发者的习惯有关。以上四个方法,我司都有使用,主要是POST请求为主,其他三个方法根据特定需求使用的。
我是非著名工程师,希望我的回答对你有所帮助,欢迎点赞关注支持,感谢!