学习之路–GET与POST区别
- 1.是基于什么前提的?如果什么前提都没有,不使用任何规范,只考虑语法和理论上的HTTP协议。
GET和POST几乎没有什么区别,只有名字不一样。
- 2.如果是基于RFC规范的。
(1)理论上的(Specification):GET和POST 是具有相同语法的。但是有不同的语义。GET是用来获取数据的,POST是用来发送数据的,其他方面没有区别。
(2)实现上的(Implementation):各种浏览器,就是这个规范的实现者。所以,才有常见的不同。
常见的不同:
- 1)GET的数据在URL是可见的。POST请求是不会显示在URL中。但是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的历史参数会被保存在浏览器里,POST不会保存到浏览器中。
- 7)GET值允许ASCII编码。POST是没有编码限制的,设置允许发二进制。所以一般我们在浏览器地址栏输入中文,搜索后,在network会变成百分号的一种形式。
- 8)GET与POST相比,相对来说GET安全性较差。因为所发的数据是url的一部分。如果发送的是密码,浏览器会保存,服务器也会保存。但是两者在网络中都是明文的,安全性都不高。如果,在网络中截包,就没什么秘密了。所以,重要的用HTTPS协议比较好,是一种加密协议。