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