网页表单Form中的get VS post之九大不同

iT例史   12月24日

网页技术中,经常会用到Form表单标签。Form标签的method属性有get和post两个值,其主要区别是:

①数据去向不同

get请求从服务器上获得资源,而post是用来向服务器提交数据,比如,注册邮箱提交的个人信息。

②表单数据传递形式不同

get将表单中数据按照name=value的形式,添加到action 所指向的url后面,且用"?"连接,各变量之间用"&"连接。

比如:

itexample.jsp?name=it&pwd=123456

post请求将表单中的数据放在HTTP协议的请求头或消息体中,传递到action所指向url。

③数据传输大小不同

get传输的数据要受到url长度限制,一般为1024字节。

而post可传输较大的数据,上传文件通常要用post方式。

④数据传输安全性不同

使用get时参数会显示在浏览器的地址栏上,象密码这些数据是不能明文显示的,此时应该用用post,否则使用get。

⑤数据编码类型不同

get使用MIME类型application/x-www-form-urlencoded的URL编码。

而post采用application/x-www-form-urlencoded 或 multipart/form-data,为二进制数据使用多重编码。

⑥书签是否保存不同

get生成的URL地址可以被书签保存,而post不可以。

⑦是否缓存不同

get请求浏览器会缓存,而post请求不会缓存。

⑧参数是否会保留在浏览历史中不同

使用get时参数会保留在浏览器历史中,而使用post则参数不会保存到浏览器的历史中。

⑨是否会二次提交数据不同

使用get的按后退按钮/刷新,在浏览器回退时是无害的;而使用post的按后退按钮/刷新,数据会重新提交。

点击全部