HTTP协议中GET和POST的区别
2020-03-05 19:33
281 查看
事实上,GET和POST并没有语法上的区别,二者仅仅是语义上的区别。
GET和POST的底层都是TCP链接,如果想要在GET请求的请求体中放置数据,或者在POST请求的URL中放置数据,这在技术上是完全可以实现的;但这并不符合HTTP协议的规范;那么,为什么HTTP协议要将这两者区分开来呢?又是以什么标准区分的呢?区分之后又会产生什么样的影响呢?
-
首先,为什么区分?
如果把TCP/IP比作公路,GET和POST请求等TCP链接就像是汽车,而HTTP就是交通规则。为什么要将汽车区分开来呢?当然是为了方便管理了。 -
其次,是以什么标准区分的呢?
幂等!
GET请求是幂等的,而POST请求是不幂等的。幂等,就是一次请求和多次请求产生的副作用相同。
举个例子,GET请求我们都知道通常用做请求资源,而POST请求则被用来提交资源;两者就像是读操作和写操作的关系,读一次和读多次效果是一样的,而写一次和写多次自然会产生不同的结果了。 -
最后,区分开之后又会产生什么样的影响呢?
GET后退按钮/刷新无害,POST数据会被重新提交;GET书签可收藏,POST为书签不可收藏;GET能被缓存,POST不能缓存……balabala……
此等区别,皆为表象。GET和POST请求的所有区别,都是在HTTP这套行为准则的规范下存在的,二者的使用方式决定了二者的区别。
这也正是我第一句所讲到的“没有语法区别;只有语义区别。”
(PS:至于安全性,在面对攻击的时候,二者几乎同样脆弱;数据的安全还是依赖于加密处理,而业内通用做法是https)
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- HTTP协议中POST方法和GET方法有那些区别?
- http协议请求,get和post的区别与联系
- Http协议中 get和post的区别
- Http协议之Get和Post的区别
- 浅谈HTTP协议中Get与Post的区别
- 解析HTTP协议六种请求方法:get,head,put,delete,post有什么区别
- HTTP协议中POST、GET、HEAD的区别是什么?分别在什么情况下使用?
- HTTP协议GET和POST的区别
- HTTP 协议请求方法GET 与POST 的区别?
- HTTP 协议中的GET 和POST 的区别
- HTTP协议中GET和POST方法的区别
- HTTP协议中 POST和GET的区别
- HTTP协议请求方式:GET 和 POST区别
- http协议请求,get和post的区别与联系
- Ajax访问不断变化的session的值不同步解决方法以及HTTP协议中的GET、POST的区别
- HTTP协议GET和POST的区别
- http协议请求,get和post的区别与联系
- http协议中的post,get的区别
- 【计算机网络】HTTP协议中Get与Post的区别
- Http协议之Get和Post的区别