论get和post的区别。。。
以下是本人收集的一些区别
w3c给出的标准答案是:
-
get在浏览器回退时是无害的,post则会再次提交请求。
-
get产生的url地址可以被收藏书签,post不可以。
-
get请求会被浏览器主动cache,post不会,除非手动设置。
-
get请求只能进行url编码,post支持多种编码方式。
-
get请求参数会被完整保留在浏览器历史记录里,post中的参数不会被保留。
-
get请求在url中传送的参数是有长度限制的,post没有。
-
对参数的数据类型,get只接受ascll字符,post没有限制。
-
get比post更不安全,因为参数直接暴露在url中,所以不能用来传送敏感信息。
-
get参数通过url传递post则放在Request body中。
然而这种答案有时候并不是面试官想要的答案。
实际上get和post并没有什么本质上的区别,因为两个都是http的tcp链接。但是由于http的规定和浏览器、服务器的限制,导致他们在应用过程中体现出了一些不同。
get和post的不同点是:
get只会产生一个tcp数据包;post则会产生两个数据包,所以get的速度比post的要快。 但是在网络环境好的情况下get和post的速度并没有多少差别,而在网络环境不好的情况下,post的两个数据包在完整性上要比get要好。 而且并不是所有的浏览器都会在post中发送两次数据包,火狐浏览器Firefox就只发送一次。