首页 > 解决方案 > 服务器在给定的时间段内响应相同的数据(缓存),仅针对相同的 IP

问题描述

我正在通过 Python 请求向 API 端点发出 GET 请求。诸如“user-agent”和“cache-control: no-cache”之类的标头已经包含在内。我每隔一秒左右就用不同的(随机)用户代理值重复这个请求。

当我提出第一个请求时,我会从服务器收到原始响应。但是对于以下请求,我得到一个缓存响应(基于响应标头)。5 秒后,我再次收到来自服务器的新响应。之后,我又得到了 5 秒的缓存响应。这个循环就这样继续下去。

有趣的是,我的第一个请求总是得到非缓存响应。如果这是一个寿命为 5 秒的标准缓存方案,我希望我的第一个请求也能获得缓存响应。至少在某些时候我应该得到缓存响应,但我从来没有这样做过。对于第一个请求,它始终是非缓存响应。

这让我觉得如果我使用代理,我可能每次都会得到非缓存响应。正如我所怀疑的,当我通过在每个请求中使用不同的代理来尝试相同的过程时,我没有收到任何缓存响应。

我的问题是;为什么我的以下请求会在 5 秒内获得缓存响应?这背后的机制是什么?如何在不使用代理的情况下获得非缓存响应?

谢谢你。

标签: pythonrestcachingpython-requests

解决方案


推荐阅读