get请求会被缓存是什么意思?缓存是后端处理的还是前端?

比如我有个接口,GET的 http://localhost/api

接口PHP写的,查询mysql数据库,大概语句是 select * from my_user limit 1

那么 get请求会被缓存 是什么意思? 我每次访问这个接口如果数据更新那也不是一样的啊? 还是说需要后端处理或者前端处理?

参考: https://blog.csdn.net/qq_2709...

阅读 11.3k
2 个回答

这里是数据会被前端缓存,当浏览器发了一条请求,会返回数据,浏览器会把返回的数据记录下来。

GET http://localhost/api

当你再次发送该请求的时候,浏览器并不真的再发送这条请求,而是从历史记录里把这个数据读取取出来,这叫做缓存。这是浏览器自己的决策,后端并不知道也没有收到任何请求。

防止浏览器缓存的方法是添加http头,告诉浏览器不要缓存数据,或是给一个校验。。。。等等

但是更靠谱的方法是每次都让get的数据不一样:

GET http://localhost/api?_t=时间戳

添加一个后端直接忽略的参数,然后每次都不一样,这样浏览器就认为每次都是不同的请求,就不会从历史记录里读取数据了。

你给的博客说的是:

get 请求可被缓存

可被缓存

可被缓存

不是

会被缓存

可被缓存意思是根据相应的 HTTP 缓存协议规则,浏览器可以达到缓存结果的目的,不是说任何 get 请求都会被浏览器缓存啊喂。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏