面试常问!!!
-
基于什么前提 ?如果什么前提也没有,不适用任何的规范,只考虑语法和理论上的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的⼀部分。