高效能網站開發指南 (High Performance Browser Networking: What every web developer should know about networking and web performance)
內容描述
<內容特色>
高效能瀏覽器網路技術
當你要建置某種快速又有效率的網頁應用程式時,會進行什麼樣的準備呢?這本權威專書會提供每位網頁技術開發者都應該知道的網路技術-從會對效能造成影響的根本限制部分,到可用來建置出更強大的網頁應用程式的主要革新部分,本書內容將涵蓋HTTP 2.0和XHR改良部分、Server-Sent Events(SSE, 伺服器發送事件)、WebSocket,以及WebRTC等主題。
Ilya Grigorik目前是Google的網頁效能工程師,將在本書中示範如何進行TCP、UDP與TLS協定的最佳化,並解說如何滿足無線和行動網路的最佳化需求。同時,也會帶您深入瞭解HTTP 2.0、搭配XHR的客戶端網路腳本程式、搭配SSE和WebSocket來進行的即時串流處理,以及WebRTC的點對點(P2P)通訊作業等等的技術效能特性。
.詳述最佳的TCP、UDP和TLS效能。.對透過3G/4G行動網路的網路效能進行最佳化。.發展快速又有效率的行動應用程式。.解決HTTP 1.x和其他瀏覽器協定裡的瓶頸。.規劃並說明釋放最佳的HTTP 2.0效能。.啟動瀏覽器裡的有效即時串流機制。.搭配即時WebRTC傳輸方式,來創造出有效的點對點視訊會議功能,以及低延遲的應用程式。
名人推薦
「這是一本任何關心網頁效能的人的必讀好書,並且已經成為網頁效能主題的重要參考文獻。」
-Mark Nottingham, IETF HTTPbis工作小組主席
<作者介紹>
Ilya Grigorik是服務於Google的一位網頁效能工程師兼開發提倡者,而他致力於在Google公司裡頭以及參與的各種活動當中,藉由建立並促使採用效能最佳慣例的方式,來讓網頁變得更快。
<序>
網頁瀏覽器是開發者所能使用的最普及散佈平台:在每台智慧型手機、平板電腦、筆記型電腦,桌上型電腦,以及各種3C產品當中,都有瀏覽器。事實上,以目前的成長速率來說,預計到2020年時,至少有200億台類似的連線裝置-每個裝置都擁有瀏覽器,而且至少都會具備WiFi或行動連線功能。裝置的平台種類、製造商,或是作業系統版本,都不是重點-每台裝置都將擁有功能與日俱增的網頁瀏覽器。
拜近年來的技術創新之賜,現在的瀏覽器早已不是過去所能相提並論的:HTML和CSS會建構出畫面呈現部分,JavaScript則是網頁的最新組合語言,而最新的HTML5 API則會持續改良,並展露出更新的平台性能,以提供更強大的高效能應用程式。過去沒有任何的其他技術或平台,可以像是現今我們在瀏覽器上進行開發那樣,擁有豐富且廣大的普及市場-機會在哪裡,創新就會在那裡!
事實上,沒有什麼技術的發展和創新速度,是可以和瀏覽器裡頭的網路基礎架構相比擬的。最早的時候,我們被限定只能夠使用簡單HTTP的請求-回應的互動機制,如今卻已經擁有高效率的串流、雙向的即時通訊機制,並且有辦法傳遞自訂的應用程式通訊協定,甚至只要幾行JavaScript程式碼,就能進行點對點的視訊會議,以及各點間的直接資料傳遞處理。所以,網路發展究竟形成了怎樣的結果呢?數十億的連線設備,存在著龐大的使用族群和新的網路服務,以及對高效能網頁應用程式的高度需求。「速度」就是其中的重點,而高效能網頁應用程式的傳遞工作就需要在瀏覽器和網路的互動過程上,仰賴一個穩固的基礎,而這就是本書的主題重點!
出版紀事本書封面的動物是一隻「馬達加斯加鷂」(Madagascar harrier)(學名:Circus macrosceles)。這種鳥最初是在馬達加斯加的科摩羅島(Comoro Island)上被發現到的,然而因為遭受到棲息地喪失與退化等方面的各種威脅,目前存活總數則正在大量銳減中。最近已經比之前想像中的越來越不容易發現到,而這種鳥以低密度的方式廣泛分佈著,因此目前約略估計總數大概有250~500隻成鳥。
與馬達加斯加濕地有關的是,鷂的最佳狩獵場所主要是在草木成蔭的湖泊、沼澤、沿岸濕地與稻田間,而牠會獵捕小型無脊椎動物和昆蟲-包括小型鳥類、蛇、蜥蜴、齧齒動物,與家禽。然而,牠對家禽的偏好(大概佔1%的補食比例),則是因為生存空間受到當地人的威脅所致。
在八月下旬與九月的乾旱期間,是這種鷂的交配季節。而在雨季開始時,經過32~34天左右的孵化後,雛鳥會有42~45天的餵養期。然而,鷂的繁殖率一直都很低,平均每次餵養就只有90%的機率能夠羽翼豐滿而獨立,而且以築巢成功比率只有四分之三。這個少得可憐的築巢成功情況,除了因為人類的撿蛋行為與破壞鳥巢的原因之外,也可能要被歸咎於人類剛好在其育種季節,對放牧地與土地進行清理目的,而定期且大規模地放火燃燒高原與沼澤地所致。總數隨著利益衝突的情況而持續減少:鷂需要的是不受干擾且未遭破壞的舊有草原,而人類在馬達加斯加許多地區的畜牧活動卻在持續增加著。
有些保育活動已計畫逐步展開:包括執行深入調查來確認總數規模、研究總體生態、收集更多有關築巢成功情況的精確資訊、減少在關鍵區域,尤其是在育種期間的燃燒行為,並找出主要的築巢地區,進而建立起保護區域。
<章節目錄>
PART I 網路通訊基礎第一章 「延遲」與「頻寬」的基本概念第二章 TCP基礎第三章 UDP 基礎第四章 傳輸層安全性(Transport Layer Security, TLS)
PART II 無線網路的效能第五章 簡介無線網路第六章 WiFi第七章 行動網路第八章 行動網路的最佳化方式
PART III HTTP第九章 HTTP 發展簡史第十章 網頁效能入門第十一章 HTTP 1.X第十二章 HTTP 2.0第十三章 應用程式傳輸的最佳化方式
PART IV 瀏覽器APIs 與通訊協定第十四章 瀏覽器網路通訊入門第十五章 XMLHttpRequest第十六章 伺服器發送事件(SSE)第十七章 WebSocket第十八章 WebRTC