GET和POST的区别
GET和POST本质上就是TCP链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。
服务器对GET和POST请求处理的差异
- 如果是GET请求,不读取请求体,业务数据从path的search或hash中读取
- 如果是POST请求,读取请求体,业务数据从请求体中获取,关于请求体的格式,不同的服务器、同一个服务器的不同服务要求不同
在浏览器地址栏中输入url地址是不能产生POST请求的,可以使用表单提交产生POST请求
由于服务器对GET和POST处理的差异,造成了GET和POST请求的差异:
- GET请求一般没有请求体,POST请求有
- GET请求的业务数据放在地址中,安全性较差(误分享、被偷窥)
- GET请求传递的业务数据量是有限的,POST是无限的(除非服务器限制)
- GET请求利于分享页面结果,POST不行
-
在浏览器中刷新或回退页面时,会按照该页面之前的请求方式重新发送请求,如果是GET请求,浏览器会重新发送GET请求;如果是POST请求,浏览器会重新构建之前的消息体数据,通常会弹出提示
GET和POST的区别.png
