请选择 进入手机版 | 继续访问电脑版

程序人生

 找回密码
 注册

QQ登录

只需一步,快速开始

程序人生 门户 Java程序员 查看内容

三个方面说明java中get与post方法的区别

2016-10-18 13:59| 发布者: sean| 查看: 416| 评论: 0

摘要: 相信大家在面试的时候经常会被问到:GET与POST有什么区别吧?你是怎么回答的呢?POST比GEt安全?GET有URL的长度限制而POST没有或者很大?GET通过URL或者Cookie传参数,POST将数据放到Body中?等等... 但是这些是它们 ...
相信大家在面试的时候经常会被问到:GET与POST有什么区别吧?你是怎么回答的呢?POST比GEt安全?GET有URL的长度限制而POST没有或者很大?GET通过URL或者Cookie传参数,POST将数据放到Body中?等等... 但是这些是它们之间的区别吗?或者说这些说法对吗?想知道吗?那就跟我来吧!Follow Me!

安全问题
有人觉得GET方式会把数据写到URL中,这样数据就暴露了,就不安全了;而POST则不会有这样的情况,所以就安全了。如果这么想就错了,GET和POST都是采用明文传输的,随便用个HTTP截取工具就能轻松获得传输的信息。所以GET和POST在这个安全层面没什么明显区别。

如果非要说他们两个有安全方面的区别,也不是没有,不过这里说的安全不是指的上面的那种安全。语义上GET是获取指定URL上的资源,是读操作,重要的一点是不论对某个资源GET多少次,它的状态是不会改变的,在这个意义上,我们说GET是安全的(不是被密码学或者数据保护意义上的安全)。因为GET是安全的,所以GET返回的内容可以被浏览器,Cache服务器缓存起来(其中还有很多细节,但不影响这里的讨论)。

而POST的语意是对指定资源“追加/添加”数据,所以是不安全的,每次提交的POST,参与的代码都会认为这个操作会修改操作对象资源的状态,于是,浏览器当你刷新的时候会跳出确认框,缓存服务器不会缓存POST请求返回内容。


长度限制
HTTP协议规范也没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。

理论上讲,POST也是没有大小限制的。HTTP协议规范也没有进行大小限制。起限制作用的是服务器的处理程序的处理能力。

参数传递
HTTP并没有要求,POST数据就要放在BODY中。也没有要求如果是GET,数据(参数)就一定要放在URL中而不能放在BODY中。也就是说POST也可以放到URL中,GET也可以放到BODY中。

关于GET和POST的区别,网上很多答案都是不够准确的。在网上查找资料的时候一定要多看一些,对比对比,这样可以帮助你鉴别是对是错。不至于一叶障目被错误的信息所误导。要保持三分的怀疑,所谓尽信书不如无书。希望这篇文章对大家以后面试的时候提供一点点的帮助。欢迎留言交流。

鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论


关于程序人生网|小黑屋|手机版|Archiver|

程序人生 | QQ

粤公网安备 44040202000007号

( 粤ICP备13038131号-5 )

返回顶部