2009-12-15 65 views
2

ETags允許瀏覽器執行條件GET。只有當有問題的資源被改變時,資源才能被重新下載。但是,瀏覽器仍然需要等待服務器響應其請求。ETags與更新URL的優點URL

到ETag的一個替代方案是引入一個令牌插入指向資源的網址:

http://example.com/css/styles.css?token=134124134

http://example.com/css/134124134/styles.css

這兩種方法都避免了不得不重新下載一個不變的資源。

但是,使用帶標記的URL允許服務器在資源上設置遠期過期標頭。這節省了條件GET所帶來的往返行程 - 如果資源不變,則指向它的URL將保持不變。

使用帶有標記的URL的ETags有什麼優勢嗎?

+0

可能對您的情況有所幫助:http://en.wikipedia.org/wiki/HTTP_ETag – CoDe 2013-05-03 13:45:08

回答

2

我看到的只讀資源的主要缺點是,如果我們都採用這種方法處理所有靜態資源,那麼客戶端緩存將開始填充各種過時的資源。

另外,想想所有的中間緩存,將開始持有大量無用的文件。

你正在用這種方法與網絡抗爭,如果它變得流行,那麼一些東西就不得不改變,因爲它不是一個可擴展的解決方案。

是否有某種混合方法,您可以使用有限的令牌集並將足夠小的過期設置爲舊的緩存資源在令牌重用之前過期?

Etags也用於讀寫資源,在這種情況下,我懷疑令牌解決方案不起作用。

-1

有一個不變的URI?

+0

如果我的URI發生變化,這有什麼關係嗎?通過改變URI,我說每個版本的文件都是獨立的資源。那有什麼問題嗎? – ctford 2009-12-15 18:21:18

+0

取決於我猜的是哪種資源:對於CSS/JS,它可能並不重要。 – jldupont 2009-12-15 18:22:33

1

我認爲最大的區別/潛在的優勢是配置; URL設置必須在應用程序內配置/設置(例如,HTML實際上必須包含該值)。 ETags是爲整個Web服務器配置的,並且不需要修改HTML就可以利用它們。

此外,當文件指向更改時,ETags會(假設它們配置正確)發生更改;向URL添加一個標記將需要一些額外的「東西」,告訴它改變(編輯HTML的人或一些配置設置等)。