get与post是HTTP请求的两种基本方法,说起两者之间的区别,我觉得接触过web开发的人都能说出一二。从直观上来看,最大的区别就是get把参数包含在url中,值和表单内的各个字段一一对应,在url中可以看到;而post传输数据时,不需要在url中显示出来,它是将表单内各个字段与其内容放置在HTML header内一起传送到所指的url地址中,用户看不到这个过程。
① get方式传递的参数可以在可以再页面上看到,所以安全性不高,不能用来传递敏感信息。而post则不会被看到;
② get产生的url地址可以被bookMark(对文件或互联网网页地址的登记,有助于迅速查找),而post不可以;
③ get请求会被浏览器主动cache,而post不会,除非手动设置;
④ get请求只能进行url编码,而post支持多种编码方式;
⑤ get请求的参数会被完整的保留在浏览器的历史记录里,而post中的参数不会被保留;
⑥ get请求在url中传送的参数是有长度限制的,而post没有长度限制;
对于参数的数据类型,get只接受ASCII字符,而post没有限制;
get请求特性:
它会将数据添加到url中,通过这种方式传递到服务器,通常利用一个
问号?代表url地址的结尾与数据参数的开端,后面的参数每一个数据参数以
“名称=值”的形式出现,参数与参数之间利用一个连接符&来区分。
post请求特性:
数据是放在HTTP主体中的,其组织方式不只一种,有&连接方式,也有分割符方式,可隐藏参数,传递大批数据,比较方便。
总而言之,当我们在提交表单的时候我们通常用post方式,当我们要传送一个较大的数据文件时,需要用post。当传递的值只需用参数方式(这个值不大于2KB)的时候,用get方式即可。