如果仅仅从HTTP协议的角度去理解,他们两个只是请求行中的字符串,只是名字不一样没有任何区别。
但是很多服务器会判断是GET还是POST,来做出一些差异化的处理,才导致GET和POST的区别:
- 1. 如果是GET请求,不读取请求体,业务数据从path和query中读取
- 2. 如果是POST请求,读取请求体,业务数据从请求体中获取,关于请求体的格式,不同的服务器、同一个服务器的不同服务要求不同
在浏览器地址栏中输入url地址是不能产生POST请求的,可以使用表单提交产生POST请求
由于服务器对GET和POST处理的差异,造成了GET和POST请求的差异:
-
GET请求一般没有请求体,POST请求有
-
GET请求的业务数据放在地址中,安全性较差
-
GET请求传递的业务数据量是有限的,POST是无限的(除非服务器限制)
-
GET请求利于分享页面结果,POST不行