HTML中get 和post 的区别(转)
当用户在 HTML 表单 (HTML Form) 中输入信息并提交之后,有两种方法将信息从浏览器传送到 Web 服务器 (Web Server)。
一种方法是通过 URL,另外一种是在 HTTP Request 的 body 中。
前一种方法,我们使用 HTML Form 中的 method = "get",后一种方法我们使用 HTML Form 中的 method ="post"。
例句如下:
<form action = "..." method = "get">
<from action = "..." method = "post">
通过 get 或者 post 方法都可以获得 Form 的数据,两者主要区别在于以下几方面:
Get
URL 改变,在URL 里显示 HTML Form 参数的 name/value 值。
只适合有少量参数的 HTML Form,因为 URL 长度有字符
涉及安全性的信息,比如用户密码,不能用 get,因为会在 URL 上显示,不安全。
Post
URL 不改变,不在 URL 里显示 HTML Form 的数据。
Form 提交的信息没有长度
涉及安全性的信息,如用户密码,应采用 post 方式。
我们看看 get 是如何提交 Form 数据的。我们先写一个 HTML 文件,如下:
<html>
<head><title>Blablar.com HTML Form Method Get Example</title></head>
<body>
<form action ="get.php" method ="get">
Name: <input type="text" name="username" />
<input type ="submit" value="ok" />
</form>
</body>
</html>
你可以看到在浏览器地址栏里的URL是:
http://localhost:8080/get.php?username=Jacky
注意get.php后面的字符串 ?username=Jacky,这是一对 name/value 数据,前面加一个问号。
如果你将 form 改成 method = "post",你在浏览器地址栏就看不到这对 name/value 数据,而只有:
http://localhost:8080/get.php
使用 get 时,第一对 name/value 值前要加一个问号? ,以后每对 name/value 值则要用 & 分开。比如一个 form中有三个参数,如下:
<form action ="u.php" method ="get">
Name: <input type="text" name="username" />
Age: <input type="text" name="age" />
Gender: <input type="text" name="gender" />
<input type ="submit" value="ok" />
</form>
比如你在Name 项填写Jacky,Age项填写50,Gender项填了male,提交之后的 URL 显示为:
http://localhost:8080/get.php?username=Jacky&age=50&gender=male