1. 程式人生 > >Chrome請求出現Provisional headers are shown的幾次經歷

Chrome請求出現Provisional headers are shown的幾次經歷

Chrome請求出現"Provisional headers are shown":

專案中遇到個好幾次,分別介紹一下不同的場景:

1. 所有的客戶端的瀏覽器訪問時都一直出現Provisional headers are shown的情況:

處理方式: 檢查該請求觸發的頁面,檢視是否有 表單提交 和 ajax請求同時觸發的情況,

例如:定義了一個按鈕,type是submit,另外又給該按鈕定義了一個ajax事件;

這種場景是我們以前開發過程中出現的一種情況

2. 部分客戶端的瀏覽器出現

處理方式:呼叫chrome的  chrome://net-internals/#events ,然後重新觸發一下請求,然後查看出現 Provisional headers are shown 的請求的日誌;

檢視是否存在 delegate_blocked_by 的關鍵字;這種一般是由於瀏覽器端的外掛或客戶端的軟體對請求進行了攔截;我們出現的情況,是被 websense endpoint攔截;

如果是這種情況,基本上可以忽略啦,客戶端自身的問題啦;可以考慮將外掛或軟體解除安裝後,重新嘗試,看是否還出現;如果還出現,請看是否屬於以下的情況

3. 所有的客戶端都隨機偶爾出現過這種錯誤,如果是這種情況,往往是屬於伺服器端的問題

 處理方式: 基於部署架構來進行排查;例如:我們的部署架構中 關鍵的幾個流程是 nginx----> 閘道器應用----> F5負載均衡----> 應用伺服器(docker)

可以進行層層排查,簡單的方式是直接伺服器shell命令 寫一個for迴圈 curl請求,先呼叫最下層的應用伺服器(如果怕壓力不夠,可以多執行緒去壓);依次往上去壓;在壓測的過程中,可以實時的去看,是否會出現請求卡住的情況;如果發現,很大的可能行就是這一層的問題:

目前我們遇到的情況有兩塊,一個是F5層面,部分請求未成功負載均衡到應用伺服器;還有一種情況是nginx層面出現的卡住的情況;

處理方案:F5層面的負載均衡策略 從 performance L4改成了standard; 

nginx層面卡住的情況處理方案:這種情況沒有實際去參與過,瞭解的情況是修改了nginx的很多配置都沒有效果,最後直接幹掉重灌就好啦,所以也沒有找到關鍵點

記錄一下,希望有所幫助