表单form的method属性值 ——get与post的区别
1. 数据传输方向
get是从服务器上获取数据,而post是用来向服务器上传输数据
2. 安全性
get提交验证的用户名和密码,是不安全的,因为提交的数据将会以明码的方式出现在url参数中,可以在浏览器记录中查看,而post则并没有显性的提交在URL中,提交时,post是将表单里面的数据保存在form数据体中,按照变量与值相对应的方式,传递到action所指向的url里面。
所以也不会被显示在浏览器地址栏url里面。能够有效地保存用户的信息,安全保密性。。
3. 提交数据长度
get提交的数据长度较短,最大限制为2kb(HTTP specification并没有对URL长度进行限制,但是IE将请求的URL长度限制为2083个字符,从而限制了get提交的数据长度),超过最大长度后就会没有效果,而post没有长度限制。
4. 编码
get只能向服务器发送ASCII字符,而post则可以发送整个ISO10646中的字符(若指定encype=“multipart/form-data”的话)
注意get和post对应的enctype属性有区别,enctype有两个值,默认值为application/x-www-form-unlencoded,而另一个值multipart/form-data只能用于post。
5. 缓存
由于一个get得到的结果对应一个uri,所以get的结果有可能会被缓存,而post一般不能
6. 引用和SEO
和缓存一样的原因,可以用一个uri引用一个get的结果页面,而post的结果不能,所以必然不能被搜索引擎搜到。