get、post和put的区别

1.get请求和post请求的区别

  1. get用来获取数据,post用来提交数据
  2. 参数长度限制:get参数有长度限制(受限于url长度,具体数值取决于浏览器和服务器的限制,最长2048字节),get请求的参数会附加在url之后,以”?”分割url和传输数据,多个参数通过”&”连接;post参数无长度限制,会把参数放在http请求体中
  3. 安全:get是明文传输,post请求可以通过抓包工具看到,也相当于是明文的
  4. 缓存:get能够被缓存,会保存在浏览器历史记录中,还可能保存在web服务器的日志中;post不能被缓存
  5. 效率:get请求的速度比post请求速度快,get请求执行效率却比post方法好,原因:post在真正接收数据之前会先将请求头发送给服务器进行确认,然后才真正发送数据。

2.post和put的区别

  1. put操作需要明确知道操作的对象,如果对象不存在会创建对象,如果对象存在,则会全部替换目标对象;post请求并不知道要操作的对象,post创建对象时,由http服务器为新创建的对象生成一个唯一的uri,post修改对象时,一般只修改目标对象的部分内容。
  2. put操作是幂等的,post操作是非幂等的。

何为幂等?

幂等(idempotent)指操作不管执行多少次,结果都不会改变。
例如,你到银行中存钱,在存的过程中机器出现故障,执行多次存钱数据写入操作,但是最终你还是账户还是仅仅多出你存入的金额,存钱的操作就是幂等的。类似于x=1的操作,不管你执行多少次,结果都是x=1.

文章作者: qinwei
文章链接: https://qw-null.github.io/2022/04/21/get、post和put的区别/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 QW's Blog