摘要:互聯(lián)網(wǎng)流量日益增加,各種視頻流媒體流量集聚擴(kuò)增,各個(gè)內(nèi)容提供商、運(yùn)營商、服務(wù)商,以及各種系統(tǒng)也都部署了適合自己不同需求的緩存設(shè)備,以適應(yīng)大流量的訪問,提高訪問速度,降低訪問延時(shí),給用戶以更快,更流暢,更好的感知和服務(wù)。同時(shí)系統(tǒng)的增加勢必帶來諸多的問題,本文以緩存系統(tǒng)的特性為例,簡述了某些特定業(yè)務(wù)在谷歌內(nèi)核瀏覽器上無法使用的現(xiàn)象,并結(jié)合抓包和碼流分析原因,同時(shí)給出了臨時(shí)和最終的解決方案。
關(guān)鍵詞:優(yōu)酷;谷歌內(nèi)核;瀏覽器;非標(biāo)頭標(biāo)識;Origin
中圖分類號:TP37
文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2019)35-0228-02
近日在對主流視頻的輪巡實(shí)地測試中,發(fā)現(xiàn)優(yōu)酷視頻在播放時(shí),有時(shí)候可以播放,有時(shí)候無法播放。針對這個(gè)問題,經(jīng)過大量無數(shù)的測試和分析后發(fā)現(xiàn),在使用含有谷歌內(nèi)核的瀏覽器播放優(yōu)酷視頻時(shí),瀏覽器提示無法播放,頁面提示一直加載中,最后導(dǎo)致黑屏現(xiàn)象,如圖1。
1 問題現(xiàn)象測試
通過反復(fù)測試發(fā)現(xiàn),只要瀏覽器應(yīng)用了谷歌內(nèi)核,在播放優(yōu)酷視頻文件時(shí)。會(huì)出現(xiàn)次無法播放的現(xiàn)象。如,360瀏覽器極速模式,火狐瀏覽器,QQ瀏覽器極速模式,均無法正常加載某些視頻進(jìn)行播放。其中360,和QQ瀏覽器在兼容模式下可以正常播放這些視頻,使用IE瀏覽器播放相同視頻正常。
2 問題現(xiàn)象測試
經(jīng)抓包發(fā)現(xiàn)優(yōu)酷視頻資源取自某廠家緩存,進(jìn)一步分析發(fā)現(xiàn),請求頭文件增加了,非標(biāo)頭標(biāo)識Origin:http://v.youku.com;如圖2。進(jìn)一步對抓包的TCP流跟蹤發(fā)現(xiàn),請求http://v.youku.com時(shí),攜帶了非標(biāo)頭標(biāo)識origin校驗(yàn)請求,在返回的數(shù)據(jù)流中雖然包含了RR重定向的SLB虛地址,但是Access-control-AI-low-origin校驗(yàn)未通過,鏈接被斷開,導(dǎo)致無法播放。根據(jù)返回的SLB虛地址,跟蹤http請求,發(fā)現(xiàn)并沒有數(shù)據(jù)流,如圖3。進(jìn)一步確認(rèn)了是谷歌瀏覽器內(nèi)核的origin驗(yàn)證未通過,而不是CACHE側(cè)的故障。
對比IE瀏覽器正常播放優(yōu)酷視頻數(shù)據(jù)流如圖4,在get請求中未出現(xiàn)origin校驗(yàn)信息,兩次302重定向后返回服務(wù)器地址,檢測命中后直接開始服務(wù)。所以初步定位為,出于安全考慮谷歌內(nèi)核,增加了Access-control-Allow-origin校驗(yàn)。測試中還發(fā)現(xiàn),使用QQ瀏覽器快速模式(谷歌內(nèi)核模式),請求同樣帶有origin校驗(yàn)信息,所以暫時(shí)可確定為,因其內(nèi)核帶有的Ac-cess-control-Allow-origin校驗(yàn)未通過,導(dǎo)致的無法播放問題。
3 解決和優(yōu)化方案描述
目前針對該問題,即請求中的Access-control-Allow-origin跨域請求頭標(biāo)識問題,目前可通過更改相關(guān)參數(shù),解除瀏覽器跨域請求,臨時(shí)恢復(fù)業(yè)務(wù)的方法解決。該方法的優(yōu)點(diǎn)是,可以快速恢復(fù)業(yè)務(wù);缺點(diǎn)是,只可對單個(gè)用戶進(jìn)行操作,不具備普遍推廣性。其不同系統(tǒng)具體操作如下,如圖5。其中windows系統(tǒng),通過在瀏覽器屬性中的目標(biāo)位置改變參數(shù),經(jīng)過測試谷歌內(nèi)核可已正常訪問緩存優(yōu)酷視頻業(yè)務(wù)。
針對該Access-control-Allow-origin校驗(yàn),緩存研發(fā)團(tuán)隊(duì)開發(fā)系統(tǒng)版本補(bǔ)丁。使返回的數(shù)據(jù)流中攜帶Access-control-AI-low-origin信息,并在驗(yàn)證通過后的分片請求時(shí),標(biāo)識部分on-gin:null,返回的Access-control-Allow-origin信息也是null,確保請求和返回一致。而針對非谷歌內(nèi)核的瀏覽器,不帶標(biāo)識origin部分的,返回消息中也不攜帶Access-control-Allow-ori-gin信息。使得系統(tǒng)能夠?yàn)椴煌瑸g覽器均提供正常服務(wù)。
4 優(yōu)化后測試分析
緩存系統(tǒng)補(bǔ)丁安裝之后,谷歌瀏覽器可正常播放優(yōu)酷視頻(圖6)。Wireshark抓包分析,跟蹤TCP流發(fā)現(xiàn)請求源站帶有on-gin校驗(yàn)請求,返回的數(shù)據(jù)流中也攜帶了Access-control-Allow-origin校驗(yàn),302重定向SLB虛地址(圖7),數(shù)據(jù)流中攜帶origin校驗(yàn)請求,返回的數(shù)據(jù)流中也攜帶了Access-control-Allow-origin校驗(yàn),校驗(yàn)通過(圖7)服務(wù)器提供正常服務(wù)。再跟蹤服務(wù)器IP數(shù)據(jù)流,返回200 0K,CACHE顯示為HIT命中狀態(tài)(圖8)。視頻業(yè)務(wù)正常播放。
5 建議與總結(jié)
加大對主流視頻網(wǎng)站的業(yè)務(wù)巡檢頻次,完善自動(dòng)監(jiān)控手段。尤其是服務(wù)流量相對較高的視頻網(wǎng)站。緩存視頻業(yè)務(wù)需要具體問題具體分析,才能避免因緩存問題給用戶帶來的不必要的麻煩。而且在采取措施時(shí)應(yīng)及時(shí)、果斷、有力。提升因緩存機(jī)制的特性(如302重定向問題),而導(dǎo)致的不兼容,不配備問題的敏感度。做任何事情銘記有特征必然會(huì)有不同這一特性。
【通聯(lián)編輯:唐一東】
收稿日期:2019-08-15
作者簡介:吳剛(1980-),男,河北石家莊人,本科,工程師,研究方向?yàn)榛ヂ?lián)網(wǎng)內(nèi)容實(shí)際應(yīng)用。