面试常问!!!
-
基于什么前提 ?如果什么前提也没有,不适用任何的规范,只考虑语法和理论上的http协议 GET 和 POST 几乎没有区别,只有名字不一样,仅此而已
-
如果是基于RFC规范的。 (1) 理论上的(Specification):GET 和 POST具有相同语法的,但是有不同的语义。GET是用来获取数据的,POST是用来发送数据的,其他方面没区别 (2)实际上的(Implementation):各个浏览器,就是这个规范的实现者。
所以才有常见的不同: 1)GET的数据在URL是可见的。POST请求是不显示在URL中的 2)GET请求对长度是有限制的,POST请求长度是无限制的 3)GET请求的数据可以收藏为书签,POST请求到的数据不可收藏为书签 4)GET请求后,按后退按钮、刷新按钮无影响,POST数据会被重新提交 5)GET的编码类型:application/x-www-form-url。POST编码类型:有很多种, 列举以下几种(不止):
encodeapplication/x-www-form-urlencoded
multipart/form-data
6)GET历史参数会被保留在浏览器里,psot不会保存在浏览器中的。 7)GET只允许ASCII.post没有编码限制,允许发二进制的。 8)GET与POST相比,GET安全性较差,因为所发的数据是URL的⼀部分。