HTTP 动词 PURGE 是幂等的吗? 如果我两次发送相同的 PURGE 请求,我第二次会收到 200 吗?
我有一个微服务,它在将消息发布到兔子队列之前使 Varnish 缓存失效。如果清除失败,我们需要的只是记录并继续执行。
队列消费者必须从 Varnish 缓存中获取资源的最新状态。 如果第一个微服务的第一次清除成功,第二个微服务的新清除请求(在实际从 varnish 请求资源之前)是否会返回成功?
最佳答案
PURGE 不是标准 HTTP 方法。它只是在 Varnish VCL 中配置的东西 - 通常以这种方式或类似的方式:
if (req.method == "PURGE") {
if (!client.ip ~ purge) {
return(synth(405,"Not allowed."));
}
return (purge);
}
(参见:https://www.varnish-cache.org/docs/trunk/users-guide/purging.html)
当您对资源(URL)调用 PURGE 时,它将从缓存(Varnish)中删除,因此对于同一资源的下一个 GET 请求,Varnish 将调用后端并缓存其响应。如果您再次对此资源调用 PURGE,它将再次从缓存中逐出。
关于rabbitmq - Varnish 中的 HTTP 方法 PURGE 是幂等的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35632607/