api - 在 HTTP 中,PUT 和 POST 发送数据的方式不同吗?

标签 api http post put

据我所知,您可以通过 POST 发送 JSON 数据,但是 PUT 应该专门在 URI 中发送信息还是可以两者都执行?

谢谢!

最佳答案

POST 和 PUT 都可以用于不同情况下的创建和更新操作。那么 PUT 和 POST 到底有什么区别呢? 简而言之:当且仅当您知道资源所在的 URL 以及资源的全部内容时才使用 PUT。否则,使用 POST。

POST 是一个非常通用的动词。因为它既不保证安全也不保证幂等性,而且它在 RFC 中的描述相对松散,所以您几乎可以将它用于任何事情。事实上,您可以将所有请求都发送到 POST 请求,因为 POST 几乎没有做出任何 promise ;如果需要,它可以表现得像 GET、PUT 或 DELETE。它还可以做一些其他动词无法做的事情——它可以在与 HTTP 请求中的 URL 不同的 URL 上创建新资源;并且它可以在不改变整个资源的情况下修改资源的一部分(尽管提出但未被广泛接受的 PATCH 方法可以做类似的事情)。

PUT 是一个限制性更强的动词。它需要一个完整的资源并将其存储在给定的 URL 中。如果之前那里有资源,它将被替换;如果没有,则创建一个新的。这些属性支持幂等性,而天真的创建或更新操作可能不会。我怀疑这可能就是为什么 PUT 被这样定义的原因;这是一个幂等操作,允许客户端向服务器发送信息。

引用资料:

  • RFC 2616 - HTTP 1.1
  • RFC 5789 - HTTP 的 PATCH 方法
  • Martin Fowler,Richardson 成熟度模型

关于api - 在 HTTP 中,PUT 和 POST 发送数据的方式不同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8508595/

相关文章:

rest - 出现并发错误时抛出什么状态码?

php - iOS 无法将图像上传到服务器

Python -m http.server 443 - 使用 SSL?

使用请求的 Python SSL 发布

json - Instagram 最新帖子 API 突然停止工作

reactjs - 显示通过API返回的错误-React Final Form

java - 在内网开一个http连接开销大吗?

javascript - 有没有什么方法可以代替 JS hack,让我可以从 iframe 发布到 iframe 之外的另一个页面?

javascript - JavaScript 新手 : how to avoid sending data that have not changed?

c# - VirtueMart API 连接/网络引用