999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

通過HTTP/2快速、安全地沖浪

2015-06-17 22:54:01
CHIP新電腦 2015年6期

HTTP是一個落后的網絡協議,無法適應目前的網絡應用環境,它既不安全,也無法充分利用帶寬。通過新一代的HTTP/2標準就可以解決這些問題,目前所有主流的瀏覽器都已經支持這一新的標準。

每個人都曾經通過在瀏覽器地址欄中輸入以“http://”開頭的地址來訪問過網站,被稱為“萬維網之父”的蒂姆·伯納斯-李(Tim Berners-Lee)1991年第一次通過互聯網實現網站通訊時也是如此。輸入HTTP開頭的地址訪問網站,代表著瀏覽器將使用超文本傳輸協議和服務器連接,這是現在我們訪問互聯網站點的基礎。目前該協議的最新版本為1.1版,而這個所謂的最新版本只是在1999年進行了一些零星優化的版本,該協議的主要缺點皆沒有被修正,明顯很難適應目前越來越復雜的網絡應用環境。

15年前的網站結構通常都非常簡單:HTML代碼和一兩個圖像,僅此而已。而時至今日,構成網站的對象數量已經大幅增長。除了大量的圖像文件和視頻、音頻文件之外,還有大量需要瀏覽器分析的JavaScript文件以及確定頁面上HTML元素顯示方式的層疊樣式表(CSS)。而15年來從來就沒有為此進行適當調整的HTTP 1.1協議完全無法有效地傳輸這種結構復雜的網頁。其后果是,瀏覽器和網站之間的HTTP通信經常出現空轉,瀏覽器打開網頁的速度比實際可以實現的速度慢得多。無論網絡的下行速度是5Mb/s還是20Mb/s,速度的提高對于瀏覽器打開網站的速度并沒有產生影響。

新版本的HTTP/2協議可以解決這一問題,在支持HTTP/2的瀏覽器上將可以實現瀏覽器與網站服務器之間的實時交互,減少服務器的響應時間,明顯可以加快打開網頁的速度。

HTTP 1.1阻礙互聯網發展

現在是時候推行新的HTTP協議了,1.1版本的問題根深蒂固,與傳輸控制協議的交互過程從一開始就已經存在著嚴重的問題。TCP負責數據包的傳輸工作,能夠靈活地處理路由器超載拒絕數據包和數據包傳輸出現錯誤等問題。因而,當瀏覽器需要與網站建立連接并傳輸數據時,最佳的方式是建立一個TCP連接,并一直通過該連接不斷地傳輸數據。

然而,HTTP 1.1協議的通信模式極其簡單,該協議在網絡通信的過程中建立了TCP許多不必要的連接:當瀏覽器請求訪問一個網站并且得到網站服務器的響應時,瀏覽器將首先發出一個GET命令,請求目標地址的索引HTML文件,服務器將瀏覽器需要的HTML文件發送給瀏覽器,瀏覽器分析該文件,并根據HTML代碼中的內容,請求所有其他的相關文件,例如網頁的圖像、圖標、字體、音頻、視頻、樣式表和腳本,為了加快速度,瀏覽器將打開8個并行的TCP連接,同時加載各種對象,為每個對象建立連接,然后發送GET命令。

這將導致嚴重的問題,因為每一個TCP連接都需要經過協商、握手等過程建立連接,然后服務器才能夠將數據發送到通過HTTP協議訪問的瀏覽器。在瀏覽器嘗試獲取的對象數目較多的情況下,大量的連接將導致服務器負載過大,連接的質量將受影響,出現響應時間延遲等問題。另外,在瀏覽器獲取大量的數據后,未必能夠馬上進行處理,因為瀏覽器可能仍在處理前一批數據中需要大量計算的數據,例如運行腳本程序。任務將逐漸堆積起來,這就是所謂“線頭堵塞(Head of Line)”。如果TCP數據包在傳輸過程中丟失,那么瀏覽器需要再次請求發送這些數據包,這個問題更是雪上加霜。

有幾個技巧可以降低HTTP 1.1這一缺陷的影響。首先網頁制作人員可以盡量用一個大的圖片代替多個小圖像,其次可以將CSS代碼和JavaScript腳本直接嵌入到網頁中,盡可能地減少HTTP請求的數量。類似的措施可以減少連接的數量,但是在一些情況下卻又可能增加線頭堵塞的概率。例如,當人們瀏覽新聞網站并希望通過刷新來加載新的內容時,因為HTTP1.1只有在瀏覽器中可以觸發重新加載而不允許服務器將數據主動推送到瀏覽器,所以在這種情況下HTTP1.1需要一個新的請求建立TCP連接,服務器再次執行完整的文件傳輸。而理想的情況應該是服務器只將已改變的代碼發送到瀏覽器,而這只有在HTTP/2中才有可能實現。

HTTP/2協議的推送選項

新版本的HTTP協議旨在解決1.1版本存在的問題,對于上面我們提到的問題,在瀏覽器和服務器之間新協議采取了不同的通信方式:當瀏覽器與服務器的連接建立后,不再是只有瀏覽器可以請求數據,服務器也可以推送數據到瀏覽器上。這不僅能夠更快地加載網站的刷新內容,而且在首次訪問網站時的加載速度同樣能夠有所提高。

和HTTP1.1一樣,HTTP/2開始時也建立一個TCP來連接傳輸數據,但此后則采用不同的方法。HTTP/2將從這個單一的連接中傳輸全部數據,由于服務器能夠推送數據,所以瀏覽器不再需要根據網頁的代碼請求腳本文件和樣式表,服務器將把它們發送到瀏覽器。這種機制減少了大量往返的請求和連接,消除了線頭堵塞的隱患。由于新協議的定義圍繞著數據包的結構,所以通過HTTP/2的復用功能,瀏覽器可以提供已經建立的連接發送新的請求,服務器將繼續通過該連接發送數據包到瀏覽器。而HTTP 1.1無法做到這一點,每個分組具有文本格式的標題以及隨后的主體與內容。

HTTP/2只建立一個連接,通過它的數據流可以不中斷地傳輸數據,并且瀏覽器與服務器之間可以打開任意數量的數據流同時發送數據,經由這些數據流傳輸往返的數據。流傳輸的可以是任意文件類型的文件,每個數據流通過接收號碼來識別,來自不同數據流的數據可以由服務器進行混合,傳輸到瀏覽器之后再進行編譯。

首先傳輸重要數據

更重要的是HTTP/2為每一個數據流設置了優先級別,在HTTP 1.1,瀏覽器并不知道哪些數據是快速勾畫一個網站最重要的數據,該協議不發送任何有關這方面的信息。它唯一進行分析的是HTML代碼中需要哪些樣式表和腳本文件,而HTTP/2的所有數據流都有優先級別,所以瀏覽器可以首先處理具有最高優先級的數據流。通過HTTP/2的這個“小把戲”,上面曾經提到的嵌入代碼等網頁制作技巧已經不再需要。

在數據流中,所有數據被打包成一個一個的消息來發送,每一個消息又被分成若干幀。每一個消息由頭部幀以及隨后的數據幀組成,消息可以傳送文件、請求和信息,因此,一個消息可以包含多個幀,也可以只包含一個幀,并具有數據流的優先級別。HTTP/2還可以通過標準定義的數十種類型的控制幀交換信息,可以通過它們調節數據流,例如傳遞服務器的信息或者報告瀏覽器正忙而無法處理更多的數據流。

減少不必要的開銷

HTTP 1.1的報頭數據量較大,每次傳輸需要占用500至800個字節,如果再加入Cookie,報頭尺寸將快速增長到幾千個字節。這將是一個非常大的額外開銷,尤其是在傳輸的對象比較小的情況下,例如本身只有幾KB的圖標。此外,HTTP報頭頻繁重復一些不必要的舊信息,例如地址、日期或連接信息等基本上都是多余的,因為瀏覽器和服務器在第一次建立連接時已經獲得了這些信息。除此之外,目前HTTP的報頭仍采用文本格式,并且沒有經過壓縮,這又造成了更多不必要的額外開銷。而HTTP/2報頭在壓縮后通過二進制代碼發送,在二進制代碼中,規定哪些字節包含報頭信息,軟件可以更輕松地對其進行分析。HTTP/2同時還避免了頻繁傳輸重復信息的問題:瀏覽器和服務器將維護一個已經收到的報頭信息表,傳輸的只有新的信息。

HTTP/2標準正式成為全面應用的互聯網規范可能還需要幾年的時間,但是它的實施進展非常迅速。Google已經走在前列:該公司一直致力于HTTP協議的更新換代,5年前,Google已經推出了一款名為SPDY的Web協議,這也是目前HTTP/2的基礎。在2013年,互聯網工程任務組(IETF)已經采用SPDY 2.0作為新HTTP協議第一稿的模板。2014年11月15日IETF發布了HTTP/2草案,并在2015年年初提交最終版本。

目前,所有主流的瀏覽器已經開始支持新的標準。如果我們使用最新的Chrome或Firefox的版本,可以使用SPDY協議進行瀏覽,也可以手動激活HTTP/2。我們也可以在Windows 10預覽版的Internet Explorer 11中使用HTTP/2,而其他Windows版本也將可以從微軟已經籌備很長時間的Internet Explorer 12中使用HTTP/2。與此同時,蘋果也終于在Safari 8中開始支持SPDY,因為很多流行的Web服務正計劃切換到HTTP/2協議。

自動升級到HTTP/2

不過,切換到HTTP/2的服務器目前仍比較少,其結果是,瀏覽器即使激活HTTP/2,首次聯系遠程站點時也需要使用HTTP 1.1,在條件允許的情況下,再執行協議的升級。目前,瀏覽器使用一個加密的HTTPS連接用于請求升級,通過應用層協議談判(ALPN)激活HTTP/2。如果成功升級到HTTP/2,那么將可以獲得更快和更安全的瀏覽速度。新的協議接下來也將可以用于未加密的連接,越來越多的瀏覽器可以通過舊的HTTP 1.1協議提供一種升級機制。在這種機制下,瀏覽器將在首次聯系服務器時發送一個請求改變HTTP版本的報頭,如果服務器接受請求,那么接下來將自動從HTTP 1.1切換到HTTP/2。

切換到HTTP/2的小網站目前數量相對比較少,但是熱門的Web服務對此都很重視。除了Google以外,Twitter和Facebook也已經切換到HTTP/2,或者至少開始支持SPDY 3.1。這是因為HTTP/2不僅有利于用戶,由于服務器不必再應付大量額外的TCP連接請求的轟炸,所以服務器的負載也將大幅降低。目前,主要的服務器系統也都已經支持HTTP/2,其中包括Apache和Nginx等開源系統。除此之外,接下來的Java版本也將支持HTTP/2。

作為用戶,我們可以在瀏覽網站的過程中,通過瀏覽器的開發工具查看和分析數據傳輸,了解當前的網站是否成功通過HTTP/2或SPDY連接。但是即使已經成功切換到HTTP/2,目前,大部分網站仍然無法為用戶提供應有的快速體驗。這是因為要發揮HTTP/2應有的性能,網站開發人員還需要調整自己的網站。現如今的商業網站大多通過很多外部來源加載代碼,瀏覽器需要為每一個來源建立新的TCP連接,對于原本就需要為每一個對象建立連接的HTTP 1.1來說沒有什么不同,不會因而出現延遲,但是對于已經優化了的HTTP/2,將無法充分發揮其通過一個連接接收一切數據的功能。因而,用真正切換到HTTP/2并充分體驗新協議所帶來的性能提升,還有許多事情需要做,需要很多的時間。不過,這并不奇怪,畢竟HTTP/2是一個全新的協議。

主站蜘蛛池模板: 玩两个丰满老熟女久久网| 精品午夜国产福利观看| 婷婷综合缴情亚洲五月伊| 五月婷婷丁香色| 日韩高清一区 | 小说区 亚洲 自拍 另类| 手机看片1024久久精品你懂的| 久久久精品久久久久三级| 日韩欧美国产三级| 日本午夜网站| 性视频一区| 亚洲日韩国产精品无码专区| 五月激激激综合网色播免费| 人妻无码一区二区视频| 欧美三级日韩三级| 免费在线成人网| 国产精品综合久久久| 92午夜福利影院一区二区三区| 亚洲黄色视频在线观看一区| 全免费a级毛片免费看不卡| 麻豆国产精品视频| 久久久久久久97| 亚洲人成网站18禁动漫无码| 色男人的天堂久久综合| 国产小视频网站| 日韩资源站| 国产高清无码麻豆精品| 日本一区高清| 91成人在线免费观看| 国产在线观看精品| 国产精品男人的天堂| 亚洲一区网站| 婷婷亚洲最大| 国产网友愉拍精品| 国产综合精品一区二区| 99re在线免费视频| 欧美中文字幕一区| 少妇被粗大的猛烈进出免费视频| 手机看片1024久久精品你懂的| 国产黄在线免费观看| 波多野结衣一区二区三视频| 欧美在线观看不卡| 国产剧情一区二区| 麻豆国产精品| 国产女人在线| 白浆视频在线观看| 九色91在线视频| 欧美日韩精品一区二区视频| 亚洲一级毛片在线观播放| 日日拍夜夜操| 亚洲视频色图| 日本爱爱精品一区二区| 18禁黄无遮挡网站| 亚洲色欲色欲www在线观看| 一区二区三区毛片无码| 精品亚洲麻豆1区2区3区| 国产精品精品视频| 亚洲二区视频| 在线看片免费人成视久网下载| 久久精品国产亚洲AV忘忧草18| 成年女人18毛片毛片免费| 国产成人综合久久| 综合网久久| 亚洲视频一区| 国产啪在线| 国产免费久久精品99re丫丫一| 免费人欧美成又黄又爽的视频| 欧美特黄一级大黄录像| 伊人婷婷色香五月综合缴缴情| 婷婷六月激情综合一区| 免费看a毛片| 国产在线小视频| 大乳丰满人妻中文字幕日本| 亚洲色成人www在线观看| 精品偷拍一区二区| 在线欧美日韩国产| 色欲色欲久久综合网| 久夜色精品国产噜噜| 日韩专区欧美| 色欲色欲久久综合网| 欧洲亚洲欧美国产日本高清| 一级看片免费视频|