HTML 表单操作:POST 和 GET

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

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

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

GET 方法

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

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

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

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

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

  • 键 - location
  • 值 - California

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


POST 方法

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

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

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

POST /user HTTP/2.0
Host: www.programiz.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 33

firstname=Robin&lastname=Williams

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


GET 与 POST

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

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战