【问题标题】:Why are query strings sent in the URL of a GET request and sent in the body of POST requests?为什么查询字符串在 GET 请求的 URL 中发送并在 POST 请求的正文中发送?
【发布时间】:2014-07-19 18:04:58
【问题描述】:

获取:

GET /blog/?name1=value1&name2=value2 HTTP/1.1
Host: website.com

发布:

POST /blog/ HTTP/1.1
Host: website.com
name1=value1&name2=value2

我不明白为什么会有区别。

【问题讨论】:

  • name1=value1&name2=value2 在您的 POST 示例中不是查询字符串。

标签: http post web get query-string


【解决方案1】:

GET 应该用于可添加书签的页面或可重复搜索;因此 URL 存储了查询数据,以便浏览器可以重复使用。

另一方面,POST 用于包含敏感信息或对于查询字符串来说可能太长的信息的一次性请求。数据不应该像 GET 请求那样保存,所以它存储在正文中。

您可能还想看到这个 SO 答案:https://stackoverflow.com/a/198473/436524

【讨论】:

    【解决方案2】:

    这是为 HTML 表单定义表单提交的结果。它与 HTTP 本身无关。

    【讨论】:

      猜你喜欢
      • 2020-04-25
      • 2022-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-06
      • 1970-01-01
      • 2018-12-14
      相关资源
      最近更新 更多