2017-07-25 77 views
0

我有一個頁面,根據它所帶回的數據可能需要很長時間(分鐘)才能加載,大部分時間都用在Page_Load()調用的方法中。我注意到,一旦達到某個時間閾值,Page_Load()將會再次出現。當我開始觀看Chrome Dev Tools和Firebug中的網絡選項卡時,我沒有看到任何第二個請求出去,但我注意到了幾件事情:爲什麼Page_Load()在長時間加載的頁面上打兩次?

在Firebug中,長時間運行時暫時閃爍狀態代碼407請求。

在Chrome Timing選項卡中,它顯示Stalled幾分鐘,然後在第二次點擊Page_Load()之前進行代理協商。

這是怎麼回事?我並不十分了解代理和身份驗證是如何工作的,但確實似乎在頁面加載過程中發生了一些重新認證,導致整個頁面生命週期重新開始。

回答

0

407是代理認證質詢狀態,這意味着某些代理正在請求認證。

根據身份驗證方案(例如Basic,NTLM,Negotiate,Digest等),隨後的請求將通過附加身份驗證信息(Proxy-Authorization標頭)進行。由於這些是重複請求,您可能不會注意到重新請求。如果涉及大量有效載荷(例如POST/PUT上的大型主體),則需要再次發送這些數據。

+0

但由於Page_Load()最初被擊中,我可以假設原始請求已通過此代理進行身份驗證,對吧?什麼會導致需要重新認證? – Learning2Code

相關問題