为什么浏览器对get方法会默认缓存,并把参数拼接到url上,而post,put,delete方法不进行缓存也不拼接?

本文介绍了GET、POST、PUT、DELETE方法在RESTfulAPI中的应用,重点讲解了GET方法为何会被浏览器缓存以及将查询参数拼接到URL上的理由,强调了幂等性和透明性的重要性。
摘要由CSDN通过智能技术生成

前置知识(使用过api文档的可略过)

认识get,post,put,delete方法

根据RESTful api(其实就是一种接口风格,大家公认的在开发中比较方便理解和使用,当然你也可以不遵守hhh,具体的请自行查阅)的约定:开发中使用

  • get方法:查询数据
  • post方法:提交数据
  • put方法:修改数据
  • delete方法:删除数据

通常,get方法携带查询参数给后台,通常写在params参数中,浏览器会把params的参数拼接到url中

post,put,delete方法携带请求体request body给后台,通常写在data参数中,浏览器不会把data中的数据拼接到url中。其实如果你不按RESTful风格来做,其实也可以在delete,put携带params参数

回归正题

为什么对get缓存

我们知道get方法是查询数据,查询数据就好比查新华字典,一个字在新华字典中的位置不会因为你查了它而使它发生改变,我们把类似这种特性叫做幂等性。显然post,delete,put都不具有这种特性。也就是说:增删查中只有查具有幂等性。

浏览器基于性能考虑会对get的获取的数据进行缓存。浏览器可以自动缓存 GET 请求的结果,特别是那些带有明确 Cache-Control 响应头的请求。由于参数已经包含在 URL 中,浏览器可以根据完整的 URL 来判断缓存的有效性,进而决定是否从缓存中提供资源。

为什么对get方法请求参数拼接到url上

可见性和可预测性:把参数放在 URL 中,使得整个请求变得透明和易于理解。任何人都可以通过查看 URL 就能知道请求的具体参数是什么,这对于调试、记录日志以及复制粘贴请求进行复现非常方便。

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值