html - HTML 表单(GET)中使用的方法与 HTTP GET 不同吗?

标签 html forms http get

嗨,我刚刚开始学习网络术语,到目前为止我明白 HTTP 使用方法 GET、POST、PUT、DELETE 来执行 CRUD 操作。我从网站上了解到,GET 用于从服务器获取数据,而 POST 用于向服务器发送数据。

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

最佳答案

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

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

GET /articles

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

GET /articles?date=2019-12-14

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

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

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

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

关于html - HTML 表单(GET)中使用的方法与 HTTP GET 不同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59340991/

相关文章:

html - 如何使用 CSS3 使我的 <nav> 栏始终位于页面中央?

ruby-on-rails - Rails form_for collection_select 忽略 select_tag 接受的远程 ajax 调用

html - 输入提交按钮的图像背景和文本 - CSS

http - 正确使用url编码

php - 使用 jQuery 向 PHP 发送 PUT AJAX 请求时出现错误 405 方法不允许

html - 如果HTTP是超文本传输​​协议(protocol),我们如何上传文件和图片呢?

html - 如何使用滚动条(溢出时)和底部固定页脚制作自动高度内容?

html - 在 2 个左/右对齐的 div 之间 float div

PHP 网络表单到电子邮件

javascript - jQuery 计算表格