關於ajax請求 Provisional headers are shown(只走Error)

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

項目中遇到個好幾回,分別介紹一下不一樣的場景:web

1. 全部的客戶端的瀏覽器訪問時都一直出現Provisional headers are shown的狀況:ajax

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

例如:定義了一個按鈕,type是submit,另外又給該按鈕定義了一個ajax事件;(當前個人狀況是出現按鈕自帶submit效果致使出現錯誤)docker

這種場景是咱們之前開發過程當中出現的一種狀況shell

 

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的不少配置都沒有效果,最後直接幹掉重裝就好啦,因此也沒有找到關鍵點

 

記錄一下,但願有所幫助

相關文章
相關標籤/搜索