2016-09-28 81 views
0

我特別感興趣的是代理服務器(或其他http緩存)是否緩存客戶端請求的URI,方法,頭部和正文?或者它只是URI和方法?Web代理服務器(或其他http緩存)緩存了哪些數據?

原因是我與否定緩存混淆,例如,使用400個狀態碼緩存響應(「錯誤請求」)。我的意思是如果第一個響應有一個導致400錯誤的「無效」主體,並且我們緩存它,這是否意味着隨後具有「有效」主體的請求仍然會從緩存中獲得400響應? (甚至沒有打原服務器?

+1

它是確定響應是否可緩存與Cache-Control和/或Expires標頭的服務器。如果有一個請求體,它不應該是一個GET請求,並且我希望許多緩存不會緩存POST,因爲這需要存儲請求體。 – Adrien

+0

@Adrien,感謝您的評論!你是對的,在PUT,POST和DELETE方法緩存將失效 - http://stackoverflow.com/a/626083/4685486 –

回答

0

的GET請求是可以由中介緩存緩存的人。 如圖書中"HTTP: The definitive guide"唯一URL和頭獲取緩存。

的PUT,POST和DELETE請求會導致緩存失效,如圖所示here

所以我原來的問題(約400響應,因爲無效的身體)是錯誤的,因爲GET請求不應該有根據REST和其他方法(它可能有正文)導致緩存失效。

感謝@Adrien指出它!