2010-04-03 29 views
1

我有一個服務器/客戶端架構,客戶端通過某個主機名,IP地址和端口訪問ASP.NET服務器的服務。沒有想到,我登錄到服務器,並通過IIS從該服務到另一個通過IIS處理的URL(相同的IP和端口)設置了永久HTTP301重定向,錯誤地認爲它是託管在那裏的另一個站點。當客戶端以舊主機名擊中服務器時,它緩存永久重定向。現在,即使我已經刪除重定向,客戶端不再使用舊地址。如何清除客戶端的緩存,以便不再存儲重定向?刪除客戶端緩存中的http301重定向

我已閱讀了關於HTTP301的持久性如何,但在這種情況下,應該可以重置單個客戶端對錯誤學習主機名的知識。有任何想法嗎?

+0

我們在談論什麼樣的客戶端? – 2010-04-03 21:39:30

+0

出於該問題的目的,可以將其視爲通過端口80發送Web請求的瀏覽器。 – ChessWhiz 2010-04-03 21:52:01

+0

然後按F1並搜索「清除緩存」。 :) – bzlm 2010-04-04 21:08:10

回答

2

HTTP狀態代碼301毫不含糊地在RFC 2616中定義爲

這個 資源的任何將來參考應該使用 返回的URI

,這意味着你得去問問之一所有客戶端都要重新驗證資源。如果您有一個可以將更新推送到客戶端的系統,也許可以推送更新以再次使用相同的URI,但強制進行重新驗證。

你在服務器端做什麼都不會有幫助 - 事實上,通過刪除IIS中的永久重定向,你已經採取了所有的措施。

+0

我只有一個客戶端,並且可以直接訪問它。我在這裏談論一個潛在的客戶端修改。 – ChessWhiz 2010-04-04 22:32:40

+0

如果您修改客戶端不遵守RFC 2616,那麼您稍後可能會遇到問題。爲什麼不使用*暫時移動*而不是*將來永久移動* – bzlm 2010-04-05 08:26:09

+0

我會在這個爛攤子之後。儘管如此,客戶端必須將重定向信息存儲在某處,並且已從服務器中刪除HTTP301響應,所以這就是爲什麼它應該能夠在不違反該客戶端的RFC 2616的情況下被清除的原因。 (我不介意客戶端是否存儲未來的HTTP301,因爲服務器不再提供服務。) – ChessWhiz 2010-04-05 16:34:47