CP/IP,SPDY,WebSocket 三者之間的關係

來源:互聯網
上載者:User

標籤:

按照OSI網路分層模型,IP是網路層協議,TCP是傳輸層協議,而HTTP是應用程式層的協議。在這三者之間,SPDY和WebSocket都是與HTTP相關的協議,而TCP是HTTP底層的協議。
一、HTTP的不足

HTTP協議經過多年的使用,發現了一些不足,主要是效能方面的,包括:
HTTP的串連問題,HTTP用戶端和伺服器之間的互動是採用請求/接聽模式,在用戶端請求時,會建立一個HTTP串連,然後發送請求訊息,服務端給出應答訊息,然後串連就關閉了。(後來的HTTP1.1支援持久串連)
因為TCP串連的建立過程是有開銷的,如果使用了SSL/TLS開銷就更大。
在瀏覽器裡,一個網頁包含許多資源,包括HTML,CSS,JavaScript,圖片等等,這樣在載入一個網頁時要同時開啟串連到同一伺服器的多個串連。
HTTP訊息頭問題,現在的用戶端會發送大量的HTTP訊息頭,由於一個網頁可能需要50-100個請求,就會有相當大的訊息頭的資料量。
HTTP通訊方式問題,HTTP的請求/應答方式的會話都是用戶端發起的,缺乏伺服器通知用戶端的機制,在需要通知的情境,如聊天室,遊戲,用戶端應用需要不斷地輪詢伺服器。

而SPDY和WebSocket是從不同的角度來解決這些不足中的一部分。除了這兩個技術,還有其他技術也在針對這些不足提出改進。
二、SPDY

SPDY的主要目的是減少50%以上的頁面載入時間,但是呢不增加部署的複雜性,不影響用戶端和服務端的Web應用,只需要瀏覽器和Web伺服器支援SPDY。主要有以下幾點:
多工,一個TCP串連上同時跑多個HTTP請求。請求可設定優先順序。
去除不需要的HTTP頭,壓縮HTTP頭,以減少需要的網路頻寬。
使用了SSL作為傳輸協議提供資料安全。
對傳輸的資料使用gzip進行壓縮
提供服務方發起通訊,並向用戶端推送資料的機制。
實質上,SPDY就是想不影響HTTP語義的情況下,替換HTTP底層傳輸的協議來加快頁面載入時間。
SPDY的解決辦法就是設計了一個會話層協議--幀協議,解決多工,優先順序等問題,然後在其上實現了HTTP的語義。

三、WebSocket

WebSocket則提供使用一個TCP串連進行雙向通訊的機制,包括網路通訊協定和API,以取代網頁和伺服器採用HTTP輪詢進行雙向通訊的機制。
本質上來說,WebSocket是不限於HTTP協議的,但是由於現存大量的HTTP基礎設施,代理,過濾,身份認證等等,WebSocket借用HTTP和HTTPS的連接埠。

由於使用HTTP的連接埠,因此TCP串連建立後的握手訊息是基於HTTP的,由伺服器判斷這是一個HTTP協議,還是WebSocket協議。 WebSocket串連除了建立和關閉時的握手,資料轉送和HTTP沒丁點關係了。

WebSocket也有自己一套幀協議。

四、SPDY和WebSocket的關係

SPDY和WebSocket的關係比較複雜。
補充關係,二者側重點不同。SPDY更側重於給Web頁面的載入提速,而WebSocket更強調為Web應用提供一種雙向的通訊機制以及API。
競爭關係,二者解決的問題有交集,比如在伺服器推送上SPDY和WebSocket都提供了方案。
承載關係,試想,如果SPDY的標準化早於WebSocket,WebSocket完全可以側重於API,利用SPDY的幀機制和多工機制實現該API。 Google提出草案,說WebSocket可以跑在SPDY之上。WebSocket的串連建立在SPDY的流之上,將WebSocket的幀映射到SPDY的幀上。
融合關係,如微軟在HTTP Speed+Mobility中所做的。

CP/IP,SPDY,WebSocket 三者之間的關係

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.