浅谈GET POST

get和set有什么区别?

1.提交参数格式不同

GET: 参数直接附加在URL后面,用“?”将URL与参数分割,参数以键值对的格式用“&”链接。参数值中英文或数字按原样发送,空格转换为“+”,如含有中文或其它字符,则将整个串用BASE64加密。用户可从地址栏看的所提交的参数。

POST:通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。

2.所能传输的数据数据量不同

由于GET方式提交的参数是直接拼接在URL后的,所以GET方式所能提交数据量的大小会受限于URL的长度。但在HTTP协议里,并没有对URL的长度做限制,故事实上URL长度实际是受限于浏览器或操作系统的。在IE中,对get和post提交的URL长度限制为2083个字符,因为此字符数包含URL本身字符,所以所能传输的参数肯定是少于这个值的。

POST所能承载的参数量在理论上也是没有上限的,实际开发中对其限制的主要作用是服务器处理程序的限制。javaweb开发中,post所能提交数据量的大小也会受到tomcat的限制,tomcat默认设置能接收HTTP POST请求的大小最大为2M,如果你的POST请求传递的数据大于2M,此值可配置。修改server.xml中 maxPostSize即可, maxPostSize=0表示取消对post参数量大小限制。具体配置如下:

  1.  <Connector connectionTimeout="20000" redirectPort="8443" maxPostSize="0"></Connector>  

3.POST的安全性相对较高

此点是基于GET和POST不同的参数提交方式,由于GET方式提交的参数都是以明文拼接在URL后的,我们可以很容易的从地址栏或浏览器缓存中看的参数的值。而post则是封装在HTTP包体中,对参数的封装是用户不可见的,所以POST安全性相对较高。


怎么选择GET和POST?

1.GET一般用于获取资源信息,POST一般用于更新资源信息。

HTTP定义了与服务器交互的不同方法,最基本的有GET、POST、PUT、DELETE,分别对应对HTTP资源的查、改、增、删。而早期的MVC跨级设计中只支持GET和POST。因此在通常的开发中,我们很少接触其他方法,在这里我们可以简单地理解为当需要从服务器查询资源时可用GET方法提交,参数相当于查询条件,而要更新服务器信息时则用POST方法提交。

2.基于安全考虑。

由其传参方式可知,GET请求参数是可见的,所以可能会存在安全隐患。可根据实际需求选择。

3.根据参数多少选择。

如请求参数繁多导致URL过长时选用POST,相反,参数较少且不考虑安全因素时用GET,效率更好。

附:GET和POST方法的请求报文:

get:


post:

参考文献:

http://support.microsoft.com/kb/q208427

http://blog.chinaunix.net/uid-26884465-id-3331012.html

http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html

http://www.netded.com/a/wangzhanjishu/2009/1114/5135.html

http://blog.csdn.net/perny/article/details/7465243


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值