form传值方法

来源:互联网 发布:生化危机6盗版端口 编辑:程序博客网 时间:2024/06/05 15:14

1、 GET方法

 <form action="?id=....">     input....

GET方法是拼接一个URI,然后直接向服务器请求数据,如果action中也带了参数,则会被忽略。

2、POST

  <form action="<?php echo $_SERVER['PHP_SELF']; ?>?id=1" method="post">

使用post时,form的数据集(形如control-name=current-value的键值对)被包装在请求的body中并被发送。并且action中拼接参数而成的url同样可以用get获取值。

get和post的区别

安全性

如果用get提交一个验证用户名和密码的form,一般认为是不安全的。因为用户名和密码将出现在URL上,进而出现在浏览器的历史记录中。显然,在对安全性有要求的情况下,应该使用post。

编码

HTML 4.01 specification指出,get只能向服务器发送ASCII字符,而post则可以发送整个ISO10646中的字符(如果同时指定enctype=”multipart/form-data”的话)。
注意get和post对应的enctype属性有区别。enctype有两个值,默认值为application/x-www-form-urlencoded,而另一个值multipart/form-data只能用于post。

提交的数据的长度

HTTP specification并没有对URL长度进行限制,但是IE将请求的URL长度限制为2083个字符,从而限制了get提交的数据长度。测试表明如果URL超出这个限制,提交form时IE不会有任何响应。其它浏览器则没有URL的长度限制,因此其它浏览器能通过get提交的数据长度仅受限于服务器的设置。
而对于post,因为提交的数据不在url中,所以通常可以简单地认为数据长度限制仅受限于服务器的设置。

缓存

由于一个get得到的结果直接对应到一个URI,所以get的结果页面有可能被浏览器缓存。而post一般则不能,参考5。

引用和SEO

出于和上面相同的原因,我们可以用一个URI引用一个get的结果页面,而post的结果则不能,所以必然不能被seo/seo.html” target=”_blank”>搜索引擎搜到。

0 0
原创粉丝点击