facebook的網站速度做為最樞紐的公司任務之一。
1. 哀求解析:web服務器解析和完整性檢查的http哀求。重疊web服務器的天生時間與瀏覽器的渲染時間,我們不僅可以減少終極的時間延遲,也能使網頁更早顯示用戶可見區域給用戶,從而大大減少用戶對延遲的感知。
為了更好的了解bigpipe,我們需要了解一下現有的動態web服務系統,它的歷史可以追溯到萬維網的初期,但現在與初期比擬卻并沒有多少改變。現代網站有著遠遠高于10年前的動態效果和互動性,但傳統的網頁服務系統早已無法跟上當今互聯網速度的要求。然而,這些優化卻很少涉及web服務器和瀏覽器的執行順序造成的瓶頸。任何一個查詢延遲都將拖慢整個終極文件的天生。
2. javascript中下載:瀏覽器下載網頁中javascript引用的資源。當web服務器完成天生頁面,并將其發送到瀏覽器,瀏覽器則成為機能瓶頸并且web服務器對其無從匡助。這是類似于大多數現代微處理器的流水線執行過程:多重指令管線通過不同的處理器執行單元,以達到機能的好。在傳統的模式,用戶哀求的生命周期如下:
bigpipe是一個重新設計的基礎動態網頁服務體系。一些如延時加載javascript、并行下載等優化技術已被網絡社區廣泛采用,以此來克服的一些限制。
3. 標記天生:web服務器天生的響應的html標記。
4. css的下載:瀏覽器下載網頁的css的要求。固然 bigpipe是對現有的服務網絡基礎過程的重新設計,但它卻不需要改變現有的網絡瀏覽器或服務器,它完全使用php和javascript來實現。大體思路是,分解網頁成叫做pagelets的小塊,然后通過web服務器和瀏覽器建立管道并治理他們在不同階段的運行。當web服務器正忙天生一個頁面,瀏覽器處于閑置狀態,鋪張其周期無所事事。在本文中,我將向大家先容我們的秘密武器之一,我們稱之為bigpipe的偉大底層技術。正如流水線微處理器劃分一個指令的生命周期為(如“取指令”,“指令解碼”,“執行”,“寫回寄存器”等)多個階段,bigpipe的頁面天生過程分為以下幾個階段:
bigpipe如何工作
web服務器的產生時間和瀏覽器的渲染時間重疊,是特別有用的,如facebook這樣內容豐碩的網站。
5. 網絡傳輸:響應從web服務器傳送到瀏覽器。
要利用該web服務器和瀏覽器之間的并行性,bigpipe首先分解網頁成多個可調用的pagelets。
6. css資源下載后,瀏覽器解析它們,并將它們應用到dom樹。在傳統的網頁呈現模式的用戶將不得不等到這些查詢數據都返回并天生終極文件,然后將其發送到用戶的電腦。
7. 瀏覽器解析web服務器的響應,使用html文件構建了一個的dom樹,并且下載引用的css和javascript文件。
8. dom樹結構和css樣式:瀏覽器構造的dom文檔樹,然后應用它的css規則。
9. web服務器解析哀求,然后讀取數據存儲層,制定一個html文件,并用一個http響應把它發送到客戶端。一個典型的facebook的網頁包含很多來源不同的數據資料:摯友名單,摯友動態,廣告等。
10. http響應通過互聯網傳送到瀏覽器。而恰是我們的工程師團隊的幾個樞紐的立異使它成為可能。
11. javascript資源下載后,瀏覽器解析并執行它們。
傳統模式在現代網站中效率長短常低下的,由于良多系統的操縱順序,不能互相重疊。在2009年,我們成功地實現了facebook網站速度晉升兩倍 。
12. 瀏覽器發送一個http哀求到web服務器。
13. 數據獲取:web服務器從存儲層獲取數據。
對于網站改版,需要注意哪些地方企業如何打破網站陳舊布局板式實現創新?建設網站的內容清單東莞家裝微信小程序開發如何找到稀缺的云計算人才百度站內搜索存在著哪些優勢?企業網站建設需要注意的一些問題百度推廣如何給我帶來客戶和訂單