POST和PUT HTTP REQUEST有什么区别?

字体

它们似乎都在向体内的服务器发送数据,那么,什么使它们不同呢?

布莱恩·邦迪

HTTP PUT:

PUT将文件或资源放在特定的URI上,并确切地放在该URI上。如果该URI上已经有文件或资源,则PUT会替换该文件或资源。如果那里没有文件或资源,PUT将创建一个。PUT是幂等的,但矛盾的是PUT响应不可缓存。

PUT的HTTP 1.1 RFC位置

HTTP POST:

POST将数据发送到特定的URI,并期望该URI上的资源可以处理请求。此时,Web服务器可以确定在指定资源的上下文中如何处理数据。POST方法不是幂等的,但是只要服务器设置适当的Cache-Control和Expires标头,POST响应就可以缓存。

官方HTTP RFC指定POST为:

  • 注释现有资源;
  • 将消息发布到公告板,新闻组,邮件列表或类似的文章组;
  • 向数据处理过程提供数据块,例如提交表单的结果;
  • 通过附加操作扩展数据库。

POST的HTTP 1.1 RFC位置

POST和PUT之间的区别:

RFC本身解释了核心差异:

POST和PUT请求之间的根本区别体现在Request-URI的不同含义上。POST请求中的URI标识将处理封闭实体的资源。该资源可能是一个数据接受过程,某个其他协议的网关或一个接受注释的单独实体。相比之下,PUT请求中的URI标识请求中包含的实体-用户代理知道要使用的URI,并且服务器不得尝试将请求应用于其他资源。如果服务器希望将该请求应用于其他URI,则它必须发送301(永久移动)响应;然后,用户代理可以自行决定是否重定向请求。

此外,更简洁一点的是RFC 7231第4.3.4节PUT状态(添加了强调),

4.3.4。

PUT方法请求目标资源的状态为请求消息有效负载中包含的表示形式createdreplaced具有该状态。

使用正确的方法,除了无关的:

REST ROA vs SOAP的一个好处是,当使用HTTP REST ROA时,它鼓励正确使用HTTP动词/方法。因此,例如,仅当您想在该确切位置创建资源时才使用PUT。而且,您永远不会使用GET创建或修改资源。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

HTTP中的POST和PUT有什么区别?

$ http和$ q有什么区别?

HTTP和REST有什么区别?

ssh和http有什么区别?

FTP 和 HTTP 有什么区别?

“ Request.newMeRequest”和“ new http Request(”)有什么区别

http.get()方法和var request = require('request')有什么区别

CakePHP中的http post和Redirect有什么区别

node.js中的request和http模块之间有什么区别?

golang`http.Request`的`Host`和`URL.Host`有什么区别?

HTTP 1.1和HTTP 2.0有什么区别?

HTTP参数和HTTP标头有什么区别?

HTTP会话和Web会话之间有什么区别?

AngularJS $http 成功和然后有什么区别

HTTP 标头的“资源”和“方法”有什么区别?

httpS和http / 2有什么区别?

HTTP 301和308状态代码有什么区别?

http模块和express模块有什么区别?

NodeJS http和https模块之间有什么区别?

HTTP 408和504错误有什么区别?

带/ post的HTTP Post URL和不带Python请求模块的HTTP Post URL有什么区别?

$ _POST,$ _ GET和$ _REQUEST有什么区别?

:method =>:put和=>:post + routing之间有什么区别

适用于Android的SOAP 1.1,SOAP 1.2,HTTP GET和HTTP POST方法有什么区别?

“http://localhost/app/hello”和“http://localhost/app/hello/”有什么区别?

HTTP / 1.1管道传输和HTTP / 2复用之间有什么区别?

网址中的http:// domain / path和http:// domain / path /有什么区别

什么是www,www和普通的http页面有什么区别?

spring request映射和url映射有什么区别?