簡體   English   中英

如何禁用 http 標頭的緩存?

[英]How can I disable cache for http headers?

我正在閱讀有關HTTP 基本身份驗證的信息 在 MDN 網站上,它說:

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

但是,在我告訴chrome 郵遞員發送沒有緩存標頭的請求后,我仍然注意到在服務器端記錄流量時存在authorization字段:

{ 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 ,但我再次看到一個authorization字段:

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

問題 1:我禁用了Chrome緩存(我找不到no-cached 選項,所以我只是在 Chrome 調試器中選擇了“禁用緩存” )和郵遞員(它有一個“no-cached header”選項),但它們仍然包含authentication標頭......為什么? 我怎樣才能阻止他們這樣做?

問題 2:當我試圖讓客戶端發回Cookie時發生了同樣的事情,我什至在 Chrome 歷史記錄中使用了清除 cookie功能......但我仍然在請求標頭中看到它的存在。 我假設每個標頭字段的緩存方式不同,那么如何管理 cookie?

打開隱身窗口將使瀏覽器忘記授權和 cookie ......但只有一次:后續選項卡將具有這些標題。

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

這很令人擔憂,因為如果用戶登錄應用程序並且令牌過期,該應用程序可以刷新它並將新令牌提供給 http 客戶端,但 Chrome 會自動用過期的令牌覆蓋它......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM