跳到主要内容

HTML 表单动作:POST和GET

提示
  1. 表单提交方法:HTML <form> 中的 method 属性决定数据提交到服务器的方式,主要有 GET 方法(请求数据)和 POST 方法(发送数据更新资源)。
  2. GET 方法特点:GET 方法通过URL发送数据,数据在URL中可见,适用于请求数据,如搜索查询,但对数据长度和类型有限制。
  3. POST 方法特点:POST 方法在请求体中发送数据,对用户不可见,适用于发送敏感数据,如用户信息,无数据长度和类型限制。

<form> 元素中的 method 属性指定了数据如何发送到服务器。

HTTP 方法声明了要对提交到服务器的数据执行的操作。HTTP 协议提供了几种方法,HTML 表单元素能够使用两种方法发送用户数据:

  • GET 方法 - 用于从指定资源请求数据
  • POST 方法 - 用于发送数据到服务器以更新资源

GET 方法

HTML GET 方法用于从服务器获取资源。例如,

<form method="get" action="www.mashangxue123.com/search">
<input type="search" name="location" placeholder="搜索.." />
<input type="submit" value="Go" />
</form>

当我们通过在输入字段输入 California 提交上述表单时,发送到服务器的请求将是 www.mashangxue123.com/search/?location=California

HTTP GET 方法在 URL 末尾添加查询字符串以发送数据到服务器。查询字符串是以键值对的形式,后跟 ? 符号。

从 URL 中,服务器可以解析用户提交的值,其中:

  • 键 - location
  • 值 - California

注意: 如果有多个查询,查询字符串将由 & 符号分隔。

POST 方法

HTTP POST 方法用于将数据发送到服务器以进行进一步处理。例如,

<form method="post" action="www.mashangxue123.com/user">
<label for="firstname">名:</label>
<input type="text" name="firstname" /><br />
<label for="lastname">姓:</label>
<input type="text" name="lastname" /><br />
<input type="submit" />
</form>

当我们提交表单时,它会将用户输入数据添加到发送到服务器的请求体中。请求看起来像

POST /user HTTP/2.0 Host: www.mashangxue123.com Content-Type:
application/x-www-form-urlencoded Content-Length: 33
firstname=Robin&lastname=Williams

发送的数据对用户来说不容易看到。但是,我们可以使用特殊工具(如浏览器的开发者工具)来检查发送的数据。

GET 与 POST

GETPOST
使用 GET 方法发送的数据在 URL 中可见。使用 POST 方法发送的数据不可见。
GET 请求可以被收藏。POST 请求不能被收藏。
GET 请求可以被缓存。POST 请求不能被缓存。
GET 请求的字符限制为 2048 个字符。POST 请求没有限制。
GET 请求只允许 ASCII 字符。POST 请求允许所有数据。