嗨,我刚刚开始学习网络术语,到目前为止我明白 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/