1.get请求和post请求的区别
- get用来获取数据,post用来提交数据
- 参数长度限制:get参数有长度限制(受限于url长度,具体数值取决于浏览器和服务器的限制,最长2048字节),get请求的参数会附加在url之后,以”?”分割url和传输数据,多个参数通过”&”连接;post参数无长度限制,会把参数放在http请求体中
- 安全:get是明文传输,post请求可以通过抓包工具看到,也相当于是明文的
- 缓存:get能够被缓存,会保存在浏览器历史记录中,还可能保存在web服务器的日志中;post不能被缓存
- 效率:get请求的速度比post请求速度快,get请求执行效率却比post方法好,原因:post在真正接收数据之前会先将请求头发送给服务器进行确认,然后才真正发送数据。
2.post和put的区别
- put操作需要明确知道操作的对象,如果对象不存在会创建对象,如果对象存在,则会全部替换目标对象;post请求并不知道要操作的对象,post创建对象时,由http服务器为新创建的对象生成一个唯一的uri,post修改对象时,一般只修改目标对象的部分内容。
- put操作是幂等的,post操作是非幂等的。
何为幂等?
幂等(idempotent)指操作不管执行多少次,结果都不会改变。
例如,你到银行中存钱,在存的过程中机器出现故障,执行多次存钱数据写入操作,但是最终你还是账户还是仅仅多出你存入的金额,存钱的操作就是幂等的。类似于x=1
的操作,不管你执行多少次,结果都是x=1
.