SPDY
互聯網協定套組 |
---|
應用層 |
傳輸層 |
網絡層 |
連結層 |
SPDY(發音如英語:speedy),一種開放的網絡傳輸協定,由Google開發,用來傳送網頁內容。基於傳輸控制協定(TCP)的應用層協定。SPDY也就是HTTP/2的前身。Google最早是在Chromium中提出的SPDY協定[1]。被用於Google Chrome瀏覽器中來訪問Google的SSL加密服務。SPDY並不是首字母縮略字,而僅僅是"speedy"的縮寫。SPDY現為Google的商標[2]。HTTP/2的關鍵功能主要來自SPDY技術,換言之,SPDY的成果被採納而最終演變為HTTP/2。
SPDY並不是一個標準協定,但SPDY的開發組推動SPDY成為正式標準,而成為了互聯網草案[3]。後來SPDY未能單獨成為正式標準,不過SPDY開發組的成員全程參與了HTTP/2的制定過程。Google Chrome[4]、Mozilla Firefox、Safari、Opera、Internet Explorer[5]等主要瀏覽器均已經或曾經支援SPDY協定。SPDY協定類似於HTTP,但旨在縮短網頁的載入時間和提高安全性。SPDY協定通過壓縮、多路復用和優先級來縮短載入時間[1]。HTTP/2協定完成之後,Google認為SPDY可以功成身退了[6],於是最終Google Chrome淘汰對SPDY的支援,全面改為採用HTTP/2。
設計
設計SPDY的目的在於降低網頁的載入時間[7]。通過優先級和多路復用,SPDY使得只需要建立一個TCP連接即可傳送網頁內容及圖片等資源[1][8]。SPDY中廣泛應用了TLS加密,傳輸內容也均以gzip或DEFLATE格式壓縮(與HTTP不同,HTTP的頭部並不會被壓縮)。另外,除了像HTTP的網頁伺服器被動的等待瀏覽器發起請求外,SPDY的網頁伺服器還可以主動推播內容[9]。
與HTTP的關係
SPDY並不用於取代HTTP,它只是修改了HTTP的請求與應答在網絡上載輸的方式[1];這意味着只需增加一個SPDY傳輸層,現有的所有伺服器端應用均不用做任何修改。
當使用SPDY的方式傳輸,HTTP請求會被處理、標記簡化和壓縮。比如,每一個SPDY端點會持續跟蹤每一個在之前的請求中已經傳送的HTTP報文頭部,從而避免重複傳送還未改變的頭部。而還未傳送的報文的數據部分將在被壓縮後被傳送。
瀏覽器支援
- Google Chrome和Chromium已經支援SPDY[10][11]。
- Mozilla Firefox自11.0開始內建支援SPDY,但預設並不使用[12][13]。從Firefox 13開始預設開啟對SPDY的支援[14]。
- Opera從12.10開始支援SPDY[15][16][17]。
- Internet Explorer從IE 11開始支援SPDY[5]。
- Safari從8.0(OS X Yosemite及iOS 8)開始支援SPDY。
Chrome 移除 SPDY
2015年9月,Google 宣佈了計劃,移除對SPDY的支援,改支援HTTP/2[18]。此更動在Chrome 51中生效。[19][20]
參見
參考文獻
- ^ 1.0 1.1 1.2 1.3 SPDY: An experimental protocol for a faster web. Chromium Developer Documentation. [2009-11-13]. (原始內容存檔於2018-02-03).
- ^ Google Permissions: Guidelines for Third Party Use of Google Brand Features. Google. [September 30, 2011]. (原始內容存檔於2020-05-01).
- ^ SPDY Protocol. [2012-02-08]. (原始內容存檔於2021-04-17).
- ^ SPDY on Google servers?. [2012-02-28]. (原始內容存檔於2013-06-19).
- ^ 5.0 5.1 IE11 SPDY/3 confirmed. 2013-06-25 [2013-06-25]. (原始內容存檔於2013-07-01).
- ^ Google準備淘汰SPDY改採HTTP/2. iThome. 2015-02-10 [2016-10-21]. (原始內容存檔於2021-01-18). 參數
|newspaper=
與模板{{cite web}}
不匹配(建議改用{{cite news}}
或|website=
) (幫助) - ^ A 2x Faster Web. Official Google Chromium Blog. 2009-11-11 [2009-11-13]. (原始內容存檔於2012-04-10).
- ^ Iljitsch van Beijnum. SPDY: Google wants to speed up the web by ditching HTTP. Ars Technica. 2009-11-12 [2009-11-13]. (原始內容存檔於2012-04-26).
- ^ Mirko Lindner. Google stellt HTTP-Alternative SPDY vor. 13 November 2009 [2011-10-21]. (原始內容存檔於2009-11-16).(德文)
- ^ Chromium SPDY client implementation. [2012-03-10]. (原始內容存檔於2013-06-24).
- ^ Chromium: SPDY proxy examples. [2012-03-10]. (原始內容存檔於2010-12-23).
- ^ Mozilla Bug 528288 - Implement SPDY protocol. [2012-03-10]. (原始內容存檔於2012-11-06).
- ^ Firefox中鍵入about:config,尋找network.http.spdy.enabled並設置為true即可啟用該功能。
- ^ Mozilla Bug 724563. [2012-03-10]. (原始內容存檔於2013-08-01).
- ^ Chromium SPDY client implementation (頁面存檔備份,存於互聯網檔案館).
- ^ Chromium: SPDY proxy examples (頁面存檔備份,存於互聯網檔案館).
- ^ Opera 12.10 Changelog. [2012-11-07]. (原始內容存檔於2013-07-31).
- ^ Chris Bentzel; Bence Béky. Hello HTTP/2, Goodbye SPDY. Chromium Blog. 2015-02-09 [2017-07-01]. (原始內容存檔於2017-03-08).
Update: To better align with Chrome's release cycle, SPDY and NPN support will be removed with the release of Chrome 51.
- ^ API Deprecations and Removals in Chrome 51. [2017-07-01]. (原始內容存檔於2017-02-01).
TL;DR: Support for HTTP/2 is widespread enough that SPDY/3.1 support can be dropped.
- ^ 存档副本. [2017-07-01]. (原始內容存檔於2017-04-24).