【问题标题】:Is the method used in HTML form (GET) different from HTTP GET?HTML 表单 (GET) 中使用的方法是否与 HTTP GET 不同?
【发布时间】:2019-12-15 03:24:04
【问题描述】:

您好,我刚开始学习网络术语,直到现在我了解 HTTP 使用方法 GET、POST、PUT、DELETE 来执行 CRUD 操作。从我读到的网站上,GET 用于从服务器获取数据,而 POST 用于将数据发送到服务器。

但是在表单中,为什么我们同时使用 GET 和 POST 将表单的数据发送到服务器? GET 不是应该从服务器获取数据而不是发布数据吗? 我的理解中缺少什么?

【问题讨论】:

  • 我的问题更多地集中在使用get发送表单信息,get方法不是仅用于获取信息而不是发送信息吗?我知道 GET 和 post 在形式上的工作方式不同,但我很困惑为什么我们使用 GET 来发送数据?

标签: html forms http get


【解决方案1】:

无论你使用什么方法,总有一个 HTTP request 和一个 response。这些方法用于指示您正在发出的请求类型。 POST 和 PUT 请求还可以选择包含请求正文(您发送的一些信息或附件,例如表单数据或文件上传)。

考虑您发出 GET 请求的情况:

GET /articles

这会向服务器请求/articles 资源。现在,假设您要发送一些参数。你可以包含一个查询字符串,这是一个常见的约定:

GET /articles?date=2019-12-14

HTTP 协议本身并不真正知道或关心,或指定资源是什么路径......由服务器决定如何处理它。在这种情况下,您的服务器可能会调用文章处理程序,并仅查询 2019 年 12 月 14 日的文章。

默认情况下,如果您在 HTML 页面上有一个使用 GET 方法的表单,那么所有表单参数都将在查询字符串中发送。

这很好,因为您并没有真正尝试将数据 PUT 或 POST 到特定位置。您实际上是在尝试从某个地方获取数据,而您只是向服务器添加了一些关于如何处理您的请求的额外参数/指令。

重申一下,无论您有什么类型的请求,您总是以 HTTP 请求的形式发送一些信息。而且,服务器总是会以 HTTP 响应的形式发回数据。

【讨论】:

  • "您并没有真正尝试将数据 PUT 或 POST 到特定位置。您实际上是在尝试从某个位置获取数据,并且您只是在服务器如何处理您的请求” - 好的。所以我们仍然通过传递参数来获取一些信息。 (请求/响应)
  • @AkankshaSingh 是的,完全正确!尝试使用 Wireshark 或 Fiddler 之类的工具,这样您就可以看到实际通过网络传输的内容,这样会更有意义。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-01
  • 2012-04-23
  • 1970-01-01
  • 1970-01-01
  • 2016-01-28
  • 2015-11-22
相关资源
最近更新 更多