get:
1. Get 方法的含义是请求从服务器获取资源,这个资源可以是静态的文本、页面、图片视频等。
2.请求的时候数据是被放在url上面的,由于url长度的限制,所以传送的数据量比较小。
3.Get只产生一个TCP数据包,通俗来说GET请求,浏览器会把http header和data一起发送出去,服务器响应200后返回数据。
常用于,我们常见的查询页面列表,查看图片资源等。
post:
POST 方法向 URI 指定的资源提交数据,数据就放在报文的 body 里。
POST产生一个TCP数据包, 浏览器先发送header,服务器先响应100 continue,浏览器再发送data,服务器响应200 返回数据。
同时并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。在正常网络情况下一般发送两次tcp数据包与一次的时间相比几乎是可以忽略不计的。
常用于我们平时的一些提交,新建保存数据等操作。
put:
PUT和POST极为相似,都是向服务器发送数据,但它们之间有一个重要区别,PUT通常指定了资源的存放位置,而POST则没有,POST的数据存放位置由服务器自己决定
常在网络条件比较差的时候会使用put代替post,能够避免客户端发送多次请求在请求未返回之前创建多条数据。
delete:
请求服务器删除Request-URI所标识的资源。
常用于我们常见的删除操作。
幂等概念
幂等性概念:幂等通俗来说是指不管进行多少次重复操作,都是实现相同的结果
1.get,put,delete都是幂等操作,而POST不是
2.get因为它是只读操作,无论操作多少次,服务器上的数据都是安全的,且每次的结果都是相同的。
3.put请求的幂等性可以理解为,将A修改为B,它第一次请求值变为了B,再进行多次此操作,最终的结果还是B,与一次执行的结果是一样的,所以put是幂等操作。
4. 同理可以理解delete操作,第一次将资源删除后,后面多次进行此删除请求,最终结果是一样的,将资源删除掉了。
5. post 因为是新增或提交数据的操作,多次提交数据就会创建多个资源,所以不是幂等的。