【问题标题】:HTTP post: url parameters and form dataHTTP post:url参数和表单数据
【发布时间】:2011-04-29 15:39:36
【问题描述】:

当我通过Web表单进行http POST请求时,URL中指定的参数与服务器端通过表单传递的参数之间是否有任何区别(实际上或理论上)?

我可以使用 url 参数进行整个 POST 并期望与表单输入相同的结果吗?

喜欢:

  <form action="/?id=2" method="post">
      <input type="text" name="name" value="John"/>
      <input type="submit" value="submit"/>
  </form>

或者:

  <form action="/?id=2&name=John" method="post">
      <input type="submit" value="submit"/>
  </form>

谢谢。

【问题讨论】:

标签: html http post parameters


【解决方案1】:

Gabriel 和 BrokenGlass 提供的参考资料真的很酷,但让我给你 2 美分。

我假设您已经对如何在服务器端检索从表单发送的数据有所了解。如果你不这样做,从那里开始,答案会比你想象的更快。

嗯,在 URL 或表单的属性操作上发送的参数是 GET 数据参数。它们将被解析并按原样提供。期间。

来自具有 POST 方法的表单的输入字段作为 POST 数据发送,并被解析并可以使用。

从您提供的示例中,假设您使用的是 PHP,我们可以检索到以下内容:

示例 1

$_GET['id']
$_POST['name']

示例 2

$_GET['id']
$_GET['name']

希望概念清晰。

【讨论】:

  • +1 - 许多站点不关心参数是否到达查询字符串或请求正文(例如,在 Java 的 HttpServletRequest.getParameter() 或 PHP 的 $_REQUEST 上使用的任何内容),但它是 可能 进行区分 - 因此在一般情况下您不能期望相同的行为。不过,它可能适用于给定的网站。
  • 是的,没错。这就是为什么我对示例进行了一些考虑。对于一般情况,即使是 cookie 也是 HTTP 协议的扩展,可以通过一般请求资源访问。但是为了清楚地了解这个主题,我认为我们应该了解规范。由于不同的目的,GET 和 POST 是不同的方法(以及其他方法,如 HEAD、PUT、DELETE ......)。每种 HTTP 方法都有自己的用途,中间进程中的所有软件(如 HTTP 服务器)可能有不同的方式来处理它们(以及每种方式中包装的数据)。
【解决方案2】:

您应该阅读this article,了解 GET 和 POST 之间的区别(GET 是将参数放入 URL 时,POST 是将参数放入表单时)。

另外,这个问题已经回答here on StackOverflow

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-21
    • 1970-01-01
    • 1970-01-01
    • 2011-02-02
    相关资源
    最近更新 更多