GET,POST,PUT,DELETE的区别

REST(英文:Representational State Transfer,简称REST)描述了一个架构样式的网络系统,比如 web 应用程序。
在服务器端,应用程序状态和功能可以分为各种资源。资源是一个有趣的概念实体,它向客户端公开。资源的例子有:应用程序对象、数据库记录、算法等等。每个资源都使用 URI (Universal Resource Identifier) 得到一个唯一的地址。所有资源都共享统一的接口,以便在客户端和服务器之间传输状态。使用的是标准的 HTTP 方法,比如 GET、PUT、POST 和 DELETE。
GET 下载,PUT 更新,POST 新增,DELETE 删除,区别如下表格所示:

HTTP方法数据处理说明
POSTCreate新增一个没有id的资源
GETRead取得一个资源
PUTUpdate更新一个资源。或新增一个含id资源(如果id不存在)
DELETEDelete删除一个资源

GET操作是安全的。所谓安全是指不管进行多少次操作,资源的状态都不会改变。比如我用GET浏览文章,不管浏览多少次,那篇文章还在那,没有变化。当然,你可能说每浏览一次文章,文章的浏览数就加一,这不也改变了资源的状态么?这并不矛盾,因为这个改变不是GET操作引起的,而是用户自己设定的服务端逻辑造成的。

PUT,DELETE操作是幂等的。所谓幂等是指不管进行多少次操作,结果都一样。比如我用PUT修改一篇文章,然后在做同样的操作,每次操作后的结果并没有不同,DELETE也是一样。顺便说一句,因为GET操作是安全的,所以它自然也是幂等的。

POST操作既不是安全的,也不是幂等的,比如常见的POST重复加载问题:当我们多次发出同样的POST请求后,其结果是创建出了若干的资源。

安全和幂等的意义在于:当操作没有达到预期的目标时,我们可以不停的重试,而不会对资源产生副作用。从这个意义上说,POST操作往往是有害的,但很多时候我们还是不得不使用它。


还有一点需要注意的就是,创建操作可以使用POST,也可以使用PUT,区别在于POST 是作用在一个集合资源之上的(/uri),而PUT操作是作用在一个具体资源之上的(/uri/xxx),再通俗点说,如果URL可以在客户端确定,那么就使用PUT,如果是在服务端确定,那么就使用POST,比如说很多资源使用数据库自增主键作为标识信息,而创建的资源的标识信息到底是什么只能由服务端提供,这个时候就必须使用POST。

由于都是要传送数据,且数据格式相同(即使数据格式不同,只要能提取出相应数据)。使用的时候难免出现张冠李戴,将get数据用来存储、将post数据用来检索返回数据。但是二者还是有区别的(主要是根据其用途而“人为”[注3]造成的),get的长度限制在2048字节(由浏览器和服务器限制的,这是目前IE的数据,曾经是1024字节),很大程度上限制了get用来传递“存储数据”的数据的能力,所以还是老老实实用来做检索吧;post则无此限制(只是HTTP协议规范没有进行大小限制,但受限于服务器的处理能力),因此对于大的数据(一般来说需要存储的数据可能会比较大,比2048字节大)的传递有天然的优势,谁让它是 nature born post 呢。

转载:https://blog.csdn.net/john548/article/details/52312637

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: GET、POST、PUT、DELETE 是四种不同的 HTTP 方法。 - GET 请求用于获取服务器上的资源。GET 请求是幂等的,意味着多次发送相同的 GET 请求不会对服务器上的资源造成影响。 - POST 请求用于向服务器提交数据。POST 请求不是幂等的,意味着多次发送相同的 POST 请求可能会对服务器上的资源造成影响。 - PUT 请求用于更新服务器上的资源。PUT 请求也是幂等的。 - DELETE 请求用于删除服务器上的资源。DELETE 请求也是幂等的。 ### 回答2: 在Web应用程序开发中,HTTP协议是非常重要的一种协议。它定义了客户端和服务器之间的通信规则,让Web应用程序能够通过HTTP标准接收和发送数据,支持通用的Web服务。 HTTP协议提供了一些基本操作,即get、post、put和delete,这些操作在Web API中有着不同的作用。这些方法定义了客户端可以向服务器发送的不同类型的请求,以及服务器应该如何响应这些请求。 1. GET方法 GET方法是HTTP协议中最常见的方法,也是最基本的获取信息的方法。该方法请求指定的资源,并返回它。客户端向服务器发送一个GET请求,服务器将返回请求的资源。GET方法通常用于获取某个资源的信息。 GET请求只是获取资源,不会修改它。因此,它是一种“安全”方法,不会对存储在服务器上的资源进行任何修改。GET方法通常用于在浏览器中获取网页内容、获取API数据等。 2. POST方法 POST方法是HTTP协议中第二个常见的方法,它通常用于向服务器提交数据。该方法在请求主体中包含数据,服务器接收到该请求后,会处理请求,根据该请求来不同的响应。 POST方法与GET方法不同,它会修改存储在服务器上的资源。因此,它是一种“非安全”方法,可能会引起潜在的问题,例如重复提交表单、错误的数据库更新等。 3. PUT方法 PUT方法是HTTP协议中的一种方法,它允许客户端向服务器提交新资源、更新现有资源或替换现有资源。PUT方法是一种更加强制的请求方法,不仅包含请求主体数据,还包含与资源相关的信息。 PUT方法主要用于更新数据,其典型用例包括更新客户端与服务器之间的数据、更新数据库记录等。PUT方法是一种“幂等”方法,即每个请求的结果都是相同的,不管请求的次数。 4. DELETE方法 DELETE方法是HTTP协议中的一种方法,它用于删除存储在服务器上的资源。与PUT方法一样,DELETE方法也是一种更加强制的请求方法,包含与资源相关的信息。DELETE方法是非安全的,因为它会删除存储在服务器上的资源。 常见的用例包括从数据库中删除记录、删除服务器上的文件等。DELETE方法是一种“幂等”方法,即每个请求的结果都是相同的,不管请求的次数。 总之,GET方法主要用于获取信息,POST方法主要用于向服务器提交数据,PUT方法主要用于更新数据,DELETE方法主要用于删除数据。在开发Web API时,根据具体需求选择正确的HTTP方法,可以提供更好的用户体验和服务。 ### 回答3: get、post、put、delete是常见的HTTP动词,用来表示HTTP请求的不同方式以及对服务器上的资源进行不同的操作。它们之间的区别主要在以下几个方面: 1. 请求方式:GET和POST是最常用的两种HTTP请求方式。GET用于请求资源,而POST用于提交数据。PUT和DELETE则用于对服务器上的资源进行修改或删除操作。 2. 请求参数:GET请求参数会附加在URL的后面,而POST请求参数则包含在请求体中。PUT和DELETE请求也可以携带参数,但是它们通常会有一个指定的资源URL。 3. 安全性:GET请求对服务器上的资源只是进行读取操作,比较安全。而POST、PUT、DELETE操作可能会对服务器上的资源进行修改或删除,需要用户进行一定的授权或身份验证。 4. 幂等性:幂等性是指对资源进行相同的操作时,结果应该是相同的。GET和DELETE请求都是幂等的,即对同一个资源多次请求结果不会发生改变。而POST和PUT请求则不一定是幂等的,因为多次请求可能会导致资源状态不一样。 总结而言,GET用于获取资源,POST用于提交数据,PUT用于修改资源,DELETE用于删除资源。每种请求方式都有其适用场景,我们在进行Web开发时需要结合需求和实际情况来选择合适的请求方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值