HTTP動詞PURGE是冪等的嗎? 如果我兩次發送相同的PURGE請求,我會第二次收到200嗎?清漆中的HTTP方法PURGE是冪等的嗎?
我有一個微服務,在將消息發佈到兔子隊列之前使Varnish緩存無效。在清除失敗的情況下,我們需要記錄並繼續執行。
隊列使用者必須從Varnish緩存中獲取資源的最新狀態。 在第一個微服務的第一個清除成功的情況下,第二個微服務的新清除請求(實際上從清除請求資源之前)是否會返回成功?
HTTP動詞PURGE是冪等的嗎? 如果我兩次發送相同的PURGE請求,我會第二次收到200嗎?清漆中的HTTP方法PURGE是冪等的嗎?
我有一個微服務,在將消息發佈到兔子隊列之前使Varnish緩存無效。在清除失敗的情況下,我們需要記錄並繼續執行。
隊列使用者必須從Varnish緩存中獲取資源的最新狀態。 在第一個微服務的第一個清除成功的情況下,第二個微服務的新清除請求(實際上從清除請求資源之前)是否會返回成功?
PURGE不是標準的HTTP方法。這只是一些清漆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)
當你調用PURGE上的資源(URL),它會從緩存中刪除( Varnish),因此對於相同資源上的下一個GET請求,Varnish將調用後端並緩存其響應。如果你再次在這個資源上調用PURGE,它將會再次從緩存中清除。
好,但我會送兩次的清洗,而無需請求資源的同時。我會收到200次兩次? –
答案是YES –
@GaSacchi:爲什麼不試試看看實際發生了什麼? –