PUT和POST的区别
这俩个方法初看一下好像都是更新资源,但是有本质上的区别,那就是语义。在HTTP中,PUT被定义为幂等(idempotent)的方法,POST则不是,这是一个很重要的区别。
首先解释幂等,幂等是数学的一个用语,对于单个输入或者无输入的运算方法,如果每次都是同样的结果,则称其是幂等的。也就是说,如果一个网络重复执行多次,产生的效果是一样的,那就是幂等(idempotent)。
POST
用于提交请求,可以更新或者创建资源,是非幂等的,举个例子:
在用户注册功能上,每次提交都是创建一个用户账号,这个时候就用POST。
ESTful URL地址应为:/user/creation?user_name=&pwd=
PUT
用于向指定URL传送更新资源,是幂等的。
还是用户模块,比如修改用户密码,虽然提交的还是账户名跟用户密码这个俩个必填参数,但是每次提交都只是更新该用户密码,每次请求都只是覆盖原先的值。此时就该用PUT。
ESTful URL地址应为:/user/{user_id}/modify?pwd=**
用PUT还是POST
当需要以更新的形式来修改某一具体资源的时候,如何判断用PUT还是POST呢?
很简单,如果该更新对应的URI多次调用的结果一致,则PUT。如果每次提交相同的内容,最终结果不一致的时候,用POST。
作者:卜可
来源:CSDN
原文:https://blog.csdn.net/q649381130/article/details/77980304
GET和POST的区别
GET 用于获取信息,是无副作用的,是幂等的,且可缓存 POST 用于修改服务器上的数据,有副作用,非幂等,不可缓存
GET、POST 请求报文上的区别
GET 和 POST 只是 HTTP 协议中两种请求方式(异曲同工),而 HTTP 协议是基于 TCP/IP 的应用层协议,无论 GET 还是 POST,用的都是同一个传输层协议,所以在传输上,没有区别。
报文格式上,不带参数时,最大区别就是第一行方法名不同, 仅仅是报文的几个字符不同而已。
POST 方法请求报文第一行是这样的 POST /url HTTP/1.1 GET 方法请求报文第一行是这样的 GET /url HTTP/1.1
带参数时报文的区别呢? 在约定中,GET 方法的参数应该放在 url 中,POST 方法参数应该放在 body 中
举个例子,如果参数是 name=Javanx, age=25。
GET 方法报文是这样的
GET /updateInfo?name=Javanx&age=25 HTTP/1.1 Host: localhost(示例)
POST 方法报文是这样的
POST /updateInfo HTTP/1.1 Host: localhost Content-Type: application/x-www-form-urlencoded name=Javanx&age=25(示例)
来源:https://baijiahao.baidu.com/s?id=1626599028653203490&wfr=spider&for=pc
网友评论