关于post、get、put、delete的区别

post和put的区别

put和post操作都是向服务器端发送数据,但是put是幂等的,而post是非幂等的。所谓幂等,即多次发送同一个请求时候,产生的结果是一样的就是幂等性原则,这是为了当网络出现延迟等,服务器(客户端)之间发送请求没有收到回应,再重新发一次,实际上另一端已经接收到了第一次的请求,接着有接收第二次同一请求。如果是交易的业务没有幂等就会造成交易两次却只结算一次交易额。
put请求:如果两个请求相同,后一个请求会把第一个请求覆盖掉。(put用于向服务器上传或更新资源)。
Post请求:后一个请求不会把第一个请求覆盖掉。(post用于提交表单或创建新资源)。

get和post

这里差别比较多
1.关于安全性:post的安全性要相对比get的高,因为get的参数都是放在url中的,可以被缓存,截取直接就能获取数据,所以一般登录密码这些信息不会明文放在url中使用get请求发送。而post的数据都是放在RequestBody,可以进行一次加密,相对安全些。使用get请求的,直接将地址复制粘贴就可以原样访问,而post一般不行,我们在浏览器输入一个网址访问网站都是get请求。

2.请求数据上限:get请求的数据会放在url后面,使用 ?A=B 格式(A是名称,B是参数)发送,这个url一般是有长度限制的,http协议没有对url长度进行限制,这个限定主要是浏览器和服务器的限制,一般是1024字节长度。而post可以将数据放在RequesetBody中传送,这里就没有数据量的上限了,get是无请求体的,所以RequestBody只能使用post方式提交。

3.关于tcp数据包:对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。实际上get会产生一个tcp数据包,post会产生两个数据,这就会造成响应时间问题,但并不是所有的浏览器都是post发两次包,firefox不是。

参考资料:https://blog.csdn.net/weixin_56921066/article/details/118608143

posted @ 2024-04-16 17:38  惊朝  阅读(502)  评论(1编辑  收藏  举报