gpt4 book ai didi

.net - HTTP 方法 GET、POST、PUT 和 DELETE 之间有什么区别

转载 作者:行者123 更新时间:2023-12-03 06:18:51 25 4
gpt4 key购买 nike

我正在开发 REST WCF 服务,理论上我知道何时选择什么目的。

  • GET 获取资源
  • PUT 进行更新
  • POST 插入
  • DELETE 删除

但是如果我们不遵循上述规则,假设插入一条我使用 GET 方法的记录,会有什么缺点?

最佳答案

由于 HTTP GET 方法被指定为幂等,因此根据规范,可以重新提交 GET 请求,并假设它不会更改服务器上的任何内容。 HTTP POST 的情况并非如此,根据规范,HTTP POST 可以更改服务器上运行的应用程序的状态。

因此,根据规范,人们可以对页面执行 HTTP GET N 次,而不必担心其状态发生变化。

不遵守规范可能会产生各种不良结果。例如,网络爬虫通过 GET 请求来索引站点,而不是 POST。如果您允许 HTTP GET 请求对数据库进行更改,您可以轻松理解它可能产生的不良影响。

尊重规范就像尊重您的服务或网站与一系列不同消费者之间的协议(protocol),这些消费者可以是普通用户的浏览器,也可以是网络爬虫等其他服务。

您可以构建一个使用 GET 插入记录的网站,但您还应该期望围绕使用您的网站而构建的任何内容都可以在您遵守协议(protocol)的假设下正常运行。

作为最后一个示例,当用户尝试刷新通过 HTTP POST 请求访问的页面时,Web 浏览器会向用户发出警告,警告某些数据可能会重新提交。如果通过 HTTP GET 请求访问该页面,您将无法获得内置浏览器的保护层。

您可以在这里阅读更多信息:http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html

关于.net - HTTP 方法 GET、POST、PUT 和 DELETE 之间有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18395523/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com