2013-02-14 714 views

回答

11

兩個代表郵件正文的哈希和。

不完全。 Content-MD5是一個哈希,但ETag是一個不透明的標識:客戶端不知道這意味着什麼。確實,生成適當的ETag的一種方法是對資源的數據進行散列處理,但並不是唯一的方法。

兩者都可用於檢查自上次 由特定客戶端請求時是否更改資源。

這是真的,雖然在這兩種情況下,你都可以從理論上得到誤報和誤報。

如果他們做同樣的事情,他們爲什麼共存於RFC2616規範?

的共存,因爲他們的目的不同; 「他們做同樣的事情」是不正確的。

Content-MD5旨在讓客戶驗證所傳輸的資源的完整性:它的含義是明確的,並且它不應該在已接收到響應後使用。

ETag旨在被用於協調高速緩存。作爲對過程不透明,它允許從它的力學解耦「資源標識符」的語義(因此,服務器可以選擇使用它想要的任何標識方案,而且是免費的,而無需任何客戶端更改該方案在未來說)。此外,ETag支持weak validation,允許種源的2按位不同的版本被作爲語義上等同處理。

相關問題