http的get和post的区别
Posted zhanghaoqi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了http的get和post的区别相关的知识,希望对你有一定的参考价值。
内部因素:编码方式,报文
外部因素:缓存[浏览器],长度限制[浏览器],请求次数[浏览器],幂等性/副作用[接口] 安全性
参数编码
get:仅支持url编码,参数需要编码和解码
post:多种编码方式
报文
get:参数放在url
post:参数放在请求体
缓存
get请求会被浏览器缓存
post不会
长度限制
浏览器允许get请求url长度为8k,过长会影响效率
post没有限制
请求次数
get请求一次
post:有的浏览器post的head和body会分开请求,head到达server后,会响应100,然后继续发送body,返回200。所以也会有效率问题,不过网络好的情况下影响不大。
幂等性/副作用
幂等性可查看下方参考链接
get:幂等性,根据语义,get请求只在服务端获取数据,所以每次获取的结果都是一样的。
post:非幂等性,会在服务端更改状态,比如调用了删除接口,下次在调用可能就是返回不存在当前商品了。所以post存在副作用。不过这些都是根据接口有关的认为因素,跟http本身没有关系。
安全性
至于安全性,两个http请求本身都是不安全的,因为http传递数据都是明文发送的,所以加上ssl才能更安全。
但是从表面上看,get请求把参数放在url上是不安全的,所以一定不要在get请求中把敏感信息放在url上。
从副作用的角度上讲,get请求对数据是安全的,因为它只获取数据,不会更改状态。
参考文章
http幂等性
带你深入理解HTTP中GET和POST的区别
以上是关于http的get和post的区别的主要内容,如果未能解决你的问题,请参考以下文章