您的位置:首页 > Web前端 > HTML

HTML表单(HTML Form)中get 和post 的区别

2010-09-22 23:46 369 查看
当用户在 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>

该 HTML 的显示界面如下:



当你在这个 HTML 文件的表单文本框输入框里输入姓名,比如 "Jacky",然后鼠标点击ok 按钮,会跳转到 get.php,在 get.php 里会显示如下图。



你可以看到在浏览器地址栏里的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


作者或编者:蚕估 Zegoo 最近更新日期:2008-06-03参考来源:www.BlaBla.cn
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: