美文网首页
HTTP中GET、PUT和POST的区别

HTTP中GET、PUT和POST的区别

作者: 习习隹方方土 | 来源:发表于2019-06-19 15:30 被阅读0次

    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

    相关文章

      网友评论

          本文标题:HTTP中GET、PUT和POST的区别

          本文链接:https://www.haomeiwen.com/subject/evjkqctx.html