【Web】表单中使用post和get的区别

在Form里面,可以使用post也可以使用get。它们都是method的合法取值。但是,post和get方法在使用上至少有两点不同:

1、Get方法通过URL请求来传递用户的输入。Post方法通过另外的形式。

2、Get方式的提交你需要用Request.QueryString来取得变量的值,而Post方式提交时,你必须通过Request.Form来访问提交的内容。

仔细研究下面的代码。你可以运行之来感受一下:

代码

以下为引用的内容:

<!--两个Form只有Method属性不同-->

<FORM ACTION=“getpost.php” METHOD=“get”>

<INPUT TYPE=“text” NAME=“Text” VALUE=“Hello World”></INPUT>

<INPUT TYPE=“submit” VALUE=“Method=Get”></INPUT>

</FORM>
<BR>

<FORM ACTION=“getpost.php” METHOD=“post”>

<INPUT TYPE=“text” NAME=“Text” VALUE=“Hello World”></INPUT>

<INPUT TYPE=“submit” VALUE=“Method=Post”></INPUT>

</FORM>

<BR>

<BR>

<? If Request.QueryString(“Text”) <> ““ Then ?>

通过get方法传递来的字符串是: “<B><?= Request.QueryString(“Text”) ?></B>“<BR>

<? End If ?>

<? If Request.Form(“Text”) <> ““ Then ?>

通过Post方法传递来的字符串是: “<B><?= Request.Form(“Text”) ?></B>“<BR>

<? End If ?>

说明

把上面的代码保存为getpost.asp,然后运行,首先测试post方法,这时候,浏览器的url并没有什么变化,返回的结果是:

通过Post方法传递来的字符串是: "Hello World"

然后测试用get方法提交,请注意,浏览器的url变成了:

http://localhost/general/form/getpost.php?Text=Hello+World

而返回的结果是:

通过get方法传递来的字符串是: "Hello World"

最后再通过post方法提交,浏览器的url还是:

http://localhost/general/form/getpost.php?Text=Hello+World

而返回的结果变成:

通过get方法传递来的字符串是: "Hello World"

通过Post方法传递来的字符串是: "Hello World"

提示

通过get方法提交数据,可能会带来安全性的问题。比如一个登陆页面。当通过get方法提交数据时,用户名和密码将出现在URL上。如果:

1、 登陆页面可以被浏览器缓存;

2、 其他人可以访问客户的这台机器。

那么,别人即可以从浏览器的历史记录中,读取到此客户的账号和密码。所以,在某些情况下,get方法会带来严重的安全性问题。
建议
在Form中,建议使用post方法。


对网上传言的解释

传言1:GET方式对长度有限制;POST方式对长度没限制。
回答:长度限制之说一方面是HTTP客户端(如IE限定URL长度为2083字节,opera 是4050, Netscape 是8192)的限制;另一方面服务器的实现也加入了限制(如果URL长度过长,HTTP服务器会报414错误)。但HTTP协议及URL官方说明均对长度限制则没有规定。

 

传言2:GET是从服务器上获取数据;POST是向服务器传送数据。
回答:GET方式就没有向服务器传送数据?那么URL中的?子句送的是什么?不论是GET还是POST,都可以向服务器传送数据,只不过传送数据的位置不同;不论是GET还是POST,都要从服务器上获取数据,否则IE浏览器拿什么东西给我们看呢?关键的问题是
GET的主要任务是获得数据,但在获得数据前也可以向服务器提交一些数据; 
POST的主要任务是提交数据,但在提交数据之后服务器也会向用户端返回一些显示用的数据。

 

传言3:GET不安全,用户能从地址栏上看到传送的数据;POST安全,用户不能从地址栏上看到传送的数据。
回答:POST方式看不到传送的数据是因为IE浏览器做了限制。如果你通过第三方工具看到了POST方式传送的数据,你还能说POST方式是安全的吗?理论上说GET和POST方式都不安全,要不就用不着研究HTTPS了。


如有了解更多详细信息,请参考:浅谈HTTP协议Get与Post的区别


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值