PUT,POST和PATCH有什么区别?

HTTP协议中的PUT,POST和PATCH方法有什么区别?


POST

HTTP.POST可以在客户端向服务器发送数据时使用,服务器将为新创建的资源决定URI。 POST方法用于请求源服务器接受请求中包含的实体作为Request-Line中Request-URI标识的资源的新下属。

当客户HTTP.PUT在向服务器发送数据并且客户HTTP.PUT在确定新创建的资源的URI时,可以使用HTTP.PUT 。 PUT方法要求封闭实体存储在提供的Request-URI下。 如果Request-URI指向一个已经存在的资源,那么封闭的实体应该被认为是驻留在原始服务器上的修改版本。 如果Request-URI不指向现有资源,并且该URI可以被请求用户代理定义为新资源,则源服务器可以使用该URI创建资源。

补丁

当客户端发送一个或多个要由服务器应用的更改时,可以使用HTTP.PATCH 。 PATCH方法请求将请求实体中描述的一组更改应用于由Request-URI标识的资源。 这组更改以称为补丁文档的格式表示。


HTTP中的PUT,POST,GET,DELETE和PATCH之间的区别动词:

最常用的HTTP动词POST,GET,PUT,DELETE类似于数据库中的CRUD(创建,读取,更新和删除)操作。 我们在字母大写中指定这些HTTP动词。 所以,下面是他们之间的比较。

  • 创建 - POST
  • 阅读 - 获取
  • 更新 - PUT
  • 删除 - 删除
  • 修补程序:提交对资源的部分修改。 如果您只需要更新资源的一个字段,则可能需要使用PATCH方法。

    注意:
    由于POST,PUT,DELETE会修改内容,因此下面url的提琴手测试只是模仿更新。 它不会实际删除或修改。 我们只能看到状态代码来检查插入,更新,删除是否发生。

    网址: http : //jsonplaceholder.typicode.com/posts/

    1) GET:

    GET是最简单的HTTP请求方法; 每次您点击链接或在地址栏中输入网址时浏览器使用的浏览器。 它指示服务器将URL标识的数据传输给客户端。 由于GET请求,数据不应在服务器端进行修改。 在这个意义上,GET请求是只读的。

    使用Fiddler或PostMan进行检查我们可以使用提琴手来检查响应。 打开提琴手并选择撰写选项卡。 如下所示指定动词和url,然后单击执行以检查响应。

    动词: GET

    网址: http : //jsonplaceholder.typicode.com/posts/

    回应:你会得到如下答复:

    “userId”:1,“id”:1,“title”:“sunt aut ...”,“body”:“quia et suscipit ...”

    在“开心”(或非错误)路径中,GET以XML或JSON形式返回一个表示,并返回一个200(OK)的HTTP响应代码。 在错误情况下,它通常返回404(NOT FOUND)或400(BAD REQUEST)。

    2)POST:

    POST动词主要用于创建新资源。 特别是,它被用来创建下属资源。 也就是说,从属于某些其他(如父母)资源。

    创建成功后,返回HTTP状态201,返回一个Location标头,其链接指向具有201 HTTP状态的新创建资源。

    使用Fiddler或PostMan进行检查我们可以使用提琴手来检查响应。 打开提琴手并选择撰写选项卡。 如下所示指定动词和url,然后单击执行以检查响应。

    动词: POST

    网址: http : //jsonplaceholder.typicode.com/posts/

    请求正文:

    data:{title:'foo',body:'bar',userId:1000,Id:1000}

    回复:您会收到201的回复代码。

    如果我们想用Id = 1000检查插入的记录,将动词改为Get并使用相同的URL并单击Execute。

    如前所述,上面的url只允许读取(GET),我们不能真正读取更新的数据。

    3)PUT:

    PUT最常用于更新功能,通过请求主体包含原始资源的新更新表示,将PUT分配给已知的资源URI。

    使用Fiddler或PostMan进行检查我们可以使用提琴手来检查响应。 打开提琴手并选择撰写选项卡。 如下所示指定动词和url,然后单击执行以检查响应。

    动词: PUT

    网址: http : //jsonplaceholder.typicode.com/posts/1

    请求正文:

    data:{title:'foo',body:'bar',userId:1,Id:1}

    响应:成功更新后,它将从PUT返回200(或204,如果未返回正文中的任何内容)。

    4)删除:

    DELETE很容易理解。 它用于删除由URI标识的资源。

    删除成功后,返回HTTP状态200(OK)以及响应主体,可能是已删除项目的表示(通常需要太多带宽)或者包装响应(请参阅下面的返回值)。 或者返回HTTP状态204(无内容)而没有响应主体。 换句话说,推荐的响应是204状态,没有主体,或JSEND风格的响应和HTTP状态200。

    使用Fiddler或PostMan进行检查我们可以使用提琴手来检查响应。 打开提琴手并选择撰写选项卡。 如下所示指定动词和url,然后单击执行以检查响应。

    动词: DELETE

    网址: http : //jsonplaceholder.typicode.com/posts/1

    响应:成功删除后,它会返回HTTP状态200(确定)以及响应主体。

    PUT和PATCH之间的示例

    如果我必须更改我的名字,请发送PUT请求以更新:

    {“first”:“Nazmul”,“last”:“hasan”}所以,为了更新名字,我们需要再次发送数据的所有参数。

    补丁:

    修补程序请求表示我们只会发送我们需要修改的数据,而不修改或影响数据的其他部分。 例如:如果我们只需要更新名字,我们只传递第一个名字。

    请参阅以下链接了解更多信息:

    https://jsonplaceholder.typicode.com/

    https://github.com/typicode/jsonplaceholder#how-to

    PATCH和PUT请求之间的主要区别是什么?

    http://www.restapitutorial.com/lessons/httpmethods.html


    PUT =用所提供的新代表替换整个资源

    PATCH =使用提供的值替换源资源的某些部分AND | OR您未提供的资源的其他部分已更新(时间戳)AND | OR更新资源影响其他资源(关系)

    https://laracasts.com/discuss/channels/general-discussion/whats-the-differences-between-put-and-patch?page=1

    链接地址: http://www.djcxy.com/p/7017.html

    上一篇: What is the difference between PUT, POST and PATCH?

    下一篇: Why use PUT methods?