Google 紀念全球資訊網 30 年:沒有 HTTP 協議就沒有網際網路

2020-12-20 CSDN

今天是2019年3月12日,是全球資訊網誕生30周年的紀念日,搜尋引擎巨頭谷歌為此在首頁換上了網際網路發明的Logo以此來紀念全球資訊網誕生30周年。

此外,今天早上,著名的開源 Web 伺服器廠商 Nginx 宣布被 F5 收購。我覺得今天可以和大家分享下網際網路的那些歷史。

我們今天之所以可以在網絡上暢遊,都要感謝一個人,他就是被譽為網際網路之父的英國計算機科學家——蒂姆·伯納斯·李。

1980年6月至12月間,伯納斯·李在日內瓦的CERN(歐洲核子研究組織)擔任獨立承包人,在那段時間裡,他提出了一個構想:創建一個以超文本系統為基礎的項目,其目的是方便研究人員分享及更新信息。

Info.cern.ch是世界上第一個網站及網站伺服器,網站在一臺位於CERN的NeXT計算機上運作,於1991年8月6日上線。

伯納斯·李發明的超文本傳輸控制協議,就是我們今天熟悉的 HTTP 協議。目前 HTTP 協議的最新版本是 HTTP/2,HTTP 協議是網際網路的基礎協議——可以說,沒有 HTTP 協議就沒有我們今天的網際網路。

HTTP 協議採用 BS 架構,也就是瀏覽器到伺服器的架構。客戶端通過瀏覽器發送 HTTP 請求給伺服器,伺服器經過解析響應客戶端的請求。

HTTP 是基於 TCP/IP 協議的應用層協議。在 OSI 七層模型中在最上層,它並不涉及數據包(packet)傳輸,主要規定了客戶端和伺服器之間的通信格式,默認使用80埠。

HTTP 協議最早的一個版本是1991年發布的 HTTP/0.9,這個版本只有一個命令,GET。通過 GET 你可以獲取伺服器的資源,比如請求伺服器根目錄下的 index.html 文件。

GET /index.html

伺服器則會返回給客戶端 index.html 的內容,並通過客戶端瀏覽器進行渲染和解析 html 標籤。這個版本的協議規定,伺服器只能回應HTML格式的字符串,不能回應別的格式。也就是說今天的圖像、視頻等多媒體資源在 HTTP/0.9這個版本上是無法進行傳輸的。

<html><body>Hello World</body></html>

1996年5月,HTTP/1.0 版本發布,增加了POST命令和HEAD命令,豐富了瀏覽器與伺服器的互動手段。

這個版本通過HTTP協議任何格式的內容都可以發送,包括傳輸文字,圖像、視頻、文件。這為網際網路的大發展奠定了基礎。

HTTP/1.0 除了增加了請求方法以及對發送文件的支持之外,還增加了格式的改變。除了數據部分,每次通信都必須包括頭信息(HTTP header),用來描述一些元數據。另外還增加了狀態碼、多字符集支持、多部分發送(multi-part type)、權限(authorization)、緩存(cache)、內容編碼(content encoding)等等。

一個正常的 HTTP 請求和響應包括請求的網址、請求方法、狀態碼、HTTP協議版本、請求頭和響應頭。例如下圖所示,請求 Google 的 HTTP 消息頭所示:

在字符的編碼問題上,HTTP/1.0版規定,頭信息必須是 ASCII 碼,後面的數據可以是任何格式。因此,伺服器回應的時候,必須告訴客戶端,數據是什麼格式,這就是Content-Type欄位的作用。

text/htmltext/cssimage/jpegimage/pngimage/svg+xmlaudio/mp4video/mp4application/javascriptapplication/pdf

這些數據類型總稱為MIME type,每個值包括一級類型和二級類型,之間用斜槓分隔。

此外,由於 HTTP/1.0 還可以對數據進行壓縮後傳輸,如下所示即為通過Content-Encoding欄位說明數據的壓縮方法,表示使用 gzip 壓縮數據:

Content-Encoding: gzip

HTTP/1.0 版也並不是完美的,它的主要缺點是,每一次建立TCP連接只能發送一個請求。發送數據完畢,連接就關閉,如果還要請求其他資源,就必須再新建一個連接。如果多次請求,勢必就會造成頻繁的對伺服器進行請求而對伺服器產生較大的資源損耗。

為了解決這個問題,有些瀏覽器在請求時,用了一個非標準的Connection欄位。

Connection: keep-alive

這個欄位要求伺服器不要關閉TCP連接,以便其他請求復用。伺服器同樣回應這個欄位。但是這個並不是一個統一的標準。

1997年1月,HTTP/1.1 版本發布,這個版本只比 1.0 版本晚了半年。它進一步完善了 HTTP 協議,一直用到了今天,直到現在還是最流行的版本。

這個版本最大的變化就是將持久化連接加入了 HTTP 標準,即TCP連接默認不關閉,可以被多個請求復用,不用聲明Connection: keep-alive。客戶端和伺服器發現對方一段時間沒有活動,就可以主動關閉連接。不過,規範的做法是,客戶端在最後一個請求時,發送Connection: close,明確要求伺服器關閉TCP連接。此外,HTTP/1.1版還新增了許多方法,例如:PUT、PATCH、HEAD、 OPTIONS、DELETE。另外,客戶端請求的頭信息新增了Host欄位,Content-Length 欄位、管道機制等新特性。

HTTP1.1版雖然允許復用TCP連接,但是同一個TCP連接裡面,所有的數據通信是按次序進行的。伺服器只有處理完一個回應,才會進行下一個回應。要是前面的回應特別慢,後面就會有許多請求排隊等著。這稱為隊頭堵塞。

為了解決這個問題,2009年,谷歌公開了自行研發的 SPDY 協議,這個協議在Chrome瀏覽器上證明可行以後,就被當作 HTTP/2 的基礎,主要特性都在 HTTP/2 之中得到繼承。

2015年,HTTP/2 發布。它不叫 HTTP/2.0,是因為標準委員會不打算再發布子版本了。HTTP/2 增加了二進位分幀、多路復用、伺服器推送(server push)、頭部壓縮等特性。

HTTP/2 採用二進位格式傳輸數據,而非 HTTP 1.x 的文本格式,二進位協議解析起來更高效。 HTTP / 1 的請求和響應報文,都是由起始行,首部和實體正文(可選)組成,各部分之間以文本換行符分隔。HTTP/2 將請求和響應數據分割為更小的幀,並且它們採用二進位編碼。

多路復用,代替原來的序列和阻塞機制。所有請求都是通過一個 TCP連接並發完成。HTTP 1.x 中,如果想並發多個請求,必須使用多個 TCP 連結,且瀏覽器為了控制資源,還會對單個域名有 6-8個的TCP連結請求限制。

在 HTTP/2 中,有了二進位分幀之後,HTTP /2 不再依賴 TCP 連結去實現多流並行了,在 HTTP/2中:

同域名下所有通信都在單個連接上完成;單個連接可以承載任意數量的雙向數據流;數據流以消息的形式發送,而消息又由一個或多個幀組成,多個幀之間可以亂序發送,因為根據幀首部的流標識可以重新組裝。

這一特性,使性能有了極大提升:

同個域名只需要佔用一個 TCP 連接,消除了因多個 TCP 連接而帶來的延時和內存消耗;單個連接上可以並行交錯的請求和響應,之間互不幹擾;在HTTP/2中,每個請求都可以帶一個31bit的優先值,0表示最高優先級, 數值越大優先級越低。有了這個優先值,客戶端和伺服器就可以在處理不同的流時採取不同的策略,以最優的方式發送流、消息和幀。

服務端可以在發送頁面HTML時主動推送其它資源,而不用等到瀏覽器解析到相應位置,發起請求再響應。例如服務端可以主動把JS和CSS文件推送給客戶端,而不需要客戶端解析HTML時再發送這些請求。

服務端可以主動推送,客戶端也有權利選擇是否接收。如果服務端推送的資源已經被瀏覽器緩存過,瀏覽器可以通過發送RST_STREAM幀來拒收。主動推送也遵守同源策略,伺服器不會隨便推送第三方資源給客戶端。

HTTP/3 是即將到來的第三個主要版本的HTTP協議。

在HTTP/3中,將棄用TCP協議,改為使用基於UDP協議的QUIC協議實現。QUIC 協議是 google 開發的一套協議,IETF 中的 QUIC 工作組致力於創建 QUIC 傳輸協議。 QUIC 是基於 UDP 實現的協議,是用來替換 TCP 的。QUIC 協議最初是由Google發起的項目,後面慢慢成為了 HTTP/2-encrypted-over-UDP 協議。

相關焦點

  • 計算機基礎之HTTP協議
    http是網絡上最常見的協議之一,我們上網必用的協議,它是什麼,是如何工作的,今天我們就簡單梳理一下http協議的知識。HTTP協議是什麼?HTTP協議是超文本傳輸協議的縮寫,英文是Hyper Text Transfer Protocol。是從全球資訊網伺服器傳輸超文本到本地瀏覽器的傳送協議。
  • 崑崙萬維:2015年年度報告(更新後)
    網際網路金融方面,公司引進了來自Facebook、微軟、聚美優品、 HSBC、Bloomberg等國際知名企業的華人高管。    公司於2015年3月30日發布股票期權與限制性股票激勵計劃草案,激勵力度很大,深度綁定人才,進一步完善了人才激勵機制。
  • HTTP協議之狀態碼詳解
    本文介紹HTTP協議中的HTTP狀態碼(HTTP Status Code), 會對大部分的狀態碼都進行了詳細的實例講解。要了解狀態碼,應該在實例中去理解狀態碼的意義,否則看了也會忘記的。對於這些狀態碼的價值還存在爭論 (我個人從來沒見過這些狀態碼, 也沒有理解這些狀態碼。)
  • 【文字版】為什麼歐洲沒有網際網路
    但是我們也應該知道,中國電商的發達是建立在中國強大的網際網路之上的。在世界進入網際網路經濟時代以後,中美兩國就一直是這個領域中的主要玩家,反觀作為現代文明發源地的歐洲,卻真的一窮二白,你說它啥也沒有都不過分,在以前的節目中我們埋了一個坑,那今天我們就來填坑,本期驍話一下我們就聊聊,為什麼歐洲沒有網際網路。
  • 紀念ARPANET誕生50周年:網際網路發展史
    1967年,勞倫斯·羅伯茨加入ARPA,發表了「ARPANET」計劃書。ARPANET團隊設計了網絡控制協議(Network Control Protocol, NCP)。1969年,ARPANET的四個節點(加州大學洛杉磯分校、斯坦福研究所(SRI)、加州大學聖巴巴拉分校和猶他大學)運行成功,這標誌著全世界第一個分組交換網絡正式運行。表1為網際網路和蘇聯計算機網的比較。
  • 萬維鋼:網際網路催生的時代之子
    萬維鋼,筆名同人於野,物理學家和專欄作者,迄今為止出版過兩本書:一本《萬萬沒想到:用理工科思維理解世界》,是央視評選出的2014年中國好書;今年出版的《智識分子:做個複雜的現代人》,又入選了南方都市報十大好書的榜單。    萬維鋼的專欄一直強調用理工科的思維理解世界,這和「羅輯思維」追求的理念不謀而合。    何為理工科思維?
  • 新一代網際網路協議IPv6今日正式啟動-新一代,網際網路協議,IPv6,6月6...
    各大網站以及網際網路服務和設備提供商會聯合啟用IPv6,IPv6可以讓所有設備直接相互通信,從而促進創新服務的開發。Google首頁也提醒大家「下一代網際網路今日揭開面紗」。因為IPv4源於美國,因此北美現在佔有3/4的IP位址,約30億個,而人口最多的亞洲只有不到4億個,中國截止2010年6月,IP位址數量達到2.5億,遠落後於4.2億網民的需求。沒有IP位址,網際網路怎麼發展!但這個問題或許很快就會迎刃而解,就在今天,國際網際網路協會將舉辦全球IPv6啟動儀式。什麼是IPv6網絡?它究竟會給我們的生活帶來怎樣的變化?
  • 圓桌|全球資訊網誕生30年來,從「三人展」談當代藝術與科技
    今年是www全球資訊網誕生三十年,也是」中國現代藝術大展」舉辦後的第三十年。2019年12月12日,作為上海昊美術館《www和中國新媒體藝術三十年》三年計劃之第一年項目,展覽「美麗新世界 (Move on China 2019):張培力、汪建偉、馮夢波三人展」在昊美術館(上海)舉辦。
  • 「不務正業」的崑崙萬維如何在危險的邊緣試探?
    然而此次崑崙萬維的年報中,其遊戲收入僅佔營收的40%左右,營收增長僅1.91%。近兩年幾乎沒有研發新的遊戲出來,最好的一款遊戲還是2016年自研的《神魔聖域》,產品周期也快到頭,目前留下原班人馬準備開發《神魔聖域2》,除此之外沒有其它項目的動靜。如今又大幅削減研發人員,基本上是要走向代理的道路。
  • 網際網路基礎知識講解:淺談http協議
    首先,我們來看一下,HTTP協議究竟是什麼東西呢?簡單的說,http協議就是一個超文本傳輸協議,該協議是用於從www(全球資訊網)伺服器傳輸超文本到本地瀏覽器用的,所以平時我們瀏覽網頁離不開這東西,該協議是基於TCP/IP通信協議來傳輸數據的,可以用來傳遞我們所需要的圖片、文件以及各方面的信息。
  • 崑崙萬維全資子公司3000萬元認購投資基金 布局網際網路AI領域
    北京商報訊(記者 盧揚 實習記者 耿文婧)7月13日,北京崑崙萬維科技股份有限公司(以下簡稱「崑崙萬維」)發布公告稱,公司全資子公司霍爾果斯昆諾天勤創業投資有限公司以自有資金出資3000萬元認購北京高榕資本管理諮詢有限公司發起設立的股權投資基金。
  • 全球資訊網誕生30年 新媒體成為一種態度
    全球資訊網誕生至今三十周年,它的縮寫「www」恰恰與爵士音樂靈魂人物路易斯·阿姆斯特朗那句「what a wonderful world」的首字母縮寫一致。展覽名字「美麗新世界」由此而來。1996年,馮夢波用當時市面上為數不多可以買得到的彩色電腦Macintosh LC II創作了《私人照相簿》,以互動遊戲的形式記錄了馮夢波的祖父母、父母和自己,一家三代人的照片、錄音等家族歷史。這件作品也成為了中國當代藝術歷史上第一部互動藝術作品。電腦對於藝術家馮夢波來說,一直就是一個玩具,可以協助完成藝術創作的玩具。
  • 網路遊戲紅利未減,崑崙萬維如何急於轉型?
    然而此次崑崙萬維的年報中,其遊戲收入僅佔營收的40%左右,營收增長僅1.91%。近兩年幾乎沒有研發新的遊戲出來,最好的一款遊戲還是2016年自研的《神魔聖域》,產品周期也快到頭,目前留下原班人馬準備開發《神魔聖域2》,除此之外沒有其它項目的動靜。如今又大幅削減研發人員,基本上是要走向代理的道路。
  • 崑崙萬維入圍「中國新經濟企業500強」 網際網路平臺動能強勁
    中新網11月30日電 日前,「2020中國新經濟企業500強發布會」在杭州舉行。會上,中國企業評價協會發布《2020中國新經濟企業500強發展報告》及2020中國新經濟企業500強榜單。北京崑崙萬維科技股份有限公司(下稱崑崙萬維)由於在網際網路領域的創新及出色表現,入選「2020中國新經濟企業500強」。新經濟有關產業,正在成為推動這場世界大變局的新動能,其高速增長、數位化、平臺化、高端人才聚集性等諸多特點,正在為轉變中國經濟發展方式,優化經濟結構、提高經濟增長質量和效益等方面發揮出積極的作用。
  • 遊戲業務沒落創始人辭職 崑崙萬維未來增長潛力不明
    新手遊上線之前,崑崙萬維在遊戲業務上一直吃老本。據其半年報披露,2019年上半年貢獻營收前三位的遊戲為《神魔聖域》《死神》《部落衝突》,其中,《部落衝突》國服和《神魔聖域》分別於2015年、2016年上線,《死神》於2018年10月份上線。《神魔聖域》在2017年的收入為5.61億,而到了2019年上半年,其收入下滑到了1.43億。
  • 理解HTTP協議
    2、HTTP 1.0版本 1996年1.0版本是改變比較大的,奠定了現在HTTP協議的基礎。這個版本的協議不僅可以傳輸HTML的文本頁面,還可以傳輸其他二進位文件,例如圖片、視頻。而且還增加了現在常用的POST和HEAD命令。請求消息和響應消息也不是單一的了,規定了一些元數據欄位。例如字符集、編碼、狀態響應碼等。
  • 崑崙萬維「買買買」 獲封A股最能折騰遊戲公司
    目前,在花出去的現金中,大部分都是投入到網際網路金融、其他的投資包括社交、電商O2O、醫療等領域。  DoNews遊戲整理了崑崙萬維在2015年的投資布局,帶大家看看這家「最能折騰」的遊戲公司到底是怎樣布局和「買買買」的。
  • 時光倒流7年!漫步2001年的Google鏡像站(圖)
    北方網10月2日消息:為了紀念誕生10周年,Google於日前推出了一個數據截至2001年1月的索引存檔(http://www.google.com/search2001.html)。藉由這個入口,我們每個人都可以回溯到7年之前的世界去看一看。
  • 網盾極風雲BGP:HTTP網絡傳輸協議
    網絡協議就是網絡中(包括網際網路)傳遞、管理信息的一些規範。如同人與人之間相互交流是需要遵循一定的規矩一樣,計算機之間的相互通信需要共同遵守一定的規則,這些規則就稱為網絡協議。沒有網絡協議的網際網路是混亂的,就和人類社會一樣。