在大多数情况下,POST 请求是否可以替代 GET 请求

Can POST request be an alternative to GET request in most of the scenarios?

本文关键字:请求 GET 是否 POST 在大多数情况下      更新时间:2023-09-26

我弄湿了 http://www.w3schools.com/tags/ref_httpmethods.asp,想知道为什么我不应该总是喜欢通过 GET 请求发布请求。我可以想到两个必须使用 POST 请求而不是 GET 的 scnarios请求。这些是:-

1(我需要为网址添加书签的地方

2(我的要求是缓存网页(就像 POST 请求一样 不缓存网页(,以便下次点击相同的 URL 时可以 从缓存中获取并优化性能。

我同意 POST 请求旨在创建/更新设计 GET 请求的资源以检索资源。虽然,从技术上讲,它们也可以反之亦然。

所以我想知道使用 POST 请求而不是 GET 请求并不总是有益的(除了我提到的两个要求以上(因为邮政更安全?我的理解正确吗?

以应有的方式使用HTTP有很多原因。这是一对:

  • 网络的价值建立在 URL 之上。每次您提供只能通过 POST 获取的页面时,您都会拒绝链接到该页面以及为其添加书签的选项。(显然仍然可以制作表单按钮,但这并不方便。即使页面是某种"服务",链接仍然具有通常的价值 - 您事先不会想到。

  • 如果用户重新加载通过 POST 获得的页面,大多数 Web 浏览器会警告他们正在"重新提交表单"并确认操作。这是因为在设计不佳的应用程序中,这可能会导致重复订单或发布重复消息等情况。因此,对没有副作用的请求使用 GET 可以消除此不必要的警告。事实上,对于具有效果的 POST 来说,一个有用的做法是使对它们的响应重定向到描述操作结果的页面的 URL(浏览器将 GET 该 URL((例如,如果 POST 发布了评论,它将重定向到评论的链接(;通过这种方式,可以重新加载页面(这可能是隐式的,例如,如果浏览器重新启动(,而对于它是否正在重新执行操作没有任何歧义。