2016-06-01 121 views
1

我念叨HTTP basic authentication上MDN,它說,在網站上:如何禁用http頭的緩存?

由於BA頭必須與每個HTTP請求發送,Web瀏覽器需要緩存的憑據一段合理時間,以避免不斷提示用戶輸入用戶名和密碼。瀏覽器之間的緩存策略不同。默認情況下,Microsoft Internet Explorer將其緩存15分鐘。

然而,後我告訴chrome postman在沒有緩存的頭發送請求,我還是注意到了「授權」字段存在,當我在服務器端登錄流量:

{ host: 'localhost:3000', 
    connection: 'keep-alive', 
    authorization: 'Basic YWRtaW46cGFzc3dvcmQ=', // why? 
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36', 
    'cache-control': 'no-cache', 
    'postman-token': '7e458c2d-b11b-026d-809b-68a7cf3d5a37', 
    .... 

然後我也試過用google chrome

{ host: 'localhost:3000', 
    connection: 'keep-alive', 
    pragma: 'no-cache', 
    'cache-control': 'no-cache', 
    authorization: 'Basic YWRtaW46cGFzc3dvcmQ=', // again 
    .... 

問題1:我兩個禁用緩存(我找不到無緩存選項,所以我就選擇了鍍鉻調試「禁用緩存」)和郵遞員(其中是否有「一個選項沒有緩存頭「),但他們仍然包括身份驗證 ...爲什麼?我怎樣才能防止他們做到這一點?

問題2:同樣的事情發生了,當我試圖讓客戶發送回餅乾,我甚至用鉻歷史明確的cookie功能...但我還是看到它的存在要求頭。我假設每個標題字段的緩存方式不同,我如何管理cookie?

打開icognito將會使瀏覽器忘記授權和餅乾......但只有一次......後續標籤將這些頭

+0

我剛剛瞭解到,這些cookie被稱爲瀏覽器會話cookie,如果我關閉並重新打開瀏覽器(或打開一個icognito),它們將消失,但是我沒有其他方法來控制它們嗎? – watashiSHUN

回答

0

我注意到了同樣的事情,這是令人沮喪。但是,您可以點擊Chrome網絡檢查器中的「停用緩存」選項,它會/應該刪除它(在我的情況下,我只是需要它用新的Auth標頭更新緩存)。

這是因爲如果用戶登錄到應用程序並且令牌過期,應用程序可以刷新它並向http客戶端提供新的令牌,但Chrome會自動用過期的令牌覆蓋它...