HTTP的發展歷史和各個版本差異

HTTP前世此生

1989年,蒂姆·伯納斯-李發表論文確立了三項關鍵技術:算法

  • URI: 統一資源標誌符,做爲互聯網上資源的惟一身份
  • HTML: 超文本標記語言,描述超文本文檔
  • HTTP: 超文本傳輸協議,用來傳輸超文本

基於這三項技術,就能夠把超文本系統完美地運行在互聯網上,讓各地的人們自由共享信息,這個系統就是"萬維網",如今的Web.所以,這一年(1989年),HTTP誕生.chrome

HTTP/0.9

因爲20世紀90年代初期互聯網世界的簡陋,收到硬件技術的限制,這個時期的HTTP被定義爲0.9版,結構簡單,採用了純文本格式來便於服務端和客戶端的處理.蒂姆·伯納斯-李最初的設想是系統中的文檔都是隻讀的,因此只容許用"GET"動做來獲取文檔,而且響應請求以後當即關閉鏈接,功能有限. 簡單的來講這個時期的HTTP的設計受到了時代的限制.瀏覽器

HTTP/1.0

1993年,NCSA(美國國家超級計算應用中心)開發出Mosaic,是第一個圖文混排的瀏覽器,隨後又在1995年開發出服務器Apache,簡化HTTP服務器的搭建工做,同時期的多媒體技術也發展很快,MP3等,這些新的技術使得HTTP進一步發展,與1996年正式發佈HTTP/1.0,形式上和如今的HTTP差異不大了,例如:緩存

  • 增長HEAD POST等新方法
  • 增長響應狀態碼,標記可能的錯誤緣由
  • 引入協議版本號概念
  • 引入HTTP HEADER(頭部)概念,讓HTTP處理請求和響應更靈活
  • 傳輸的數據再也不僅限於文本

可是HTTP/1.0並非一個"標準",只是記錄已由實踐和模式的一份參考文檔,至關於一個"備忘錄".安全

HTTP/1.1

1995年,網景的Netscape Navigator和微軟的IE進行瀏覽器大戰,爭取互聯網主導地位,最後IE獲勝(後來網景憑藉Mozilla Firefox扳回一局)服務器

此次的大戰極大的推進了互聯網的發展,HTTP/1.0在這個過程當中經受了實踐的檢驗,以後再1999年,HTTP/1.1發佈了REC文檔,編號2616. HTTP/1.1是對HTTP/1.0的小幅度修改,最重要的區別是1.1是一個"正式的標準",而不是參考文檔,意味着從此互聯網上全部的瀏覽器、服務器、網關、代理等,只要用到HTTP協議,就須要遵照這個標準.網絡

HTTP/1.1主要的變動點:性能

  • 新增PUT、DELETE等新的方法
  • 增長了緩存管理和控制
  • 明確了鏈接管理,容許持久鏈接
  • 容許響應分塊(chunked),利於傳輸大文件
  • 強制Host頭,讓互聯網主機託管成爲可能
HTTP/2

HTTP/1.1標準通過多年,出現的問題主要就是鏈接慢,沒法跟上迅速發展的互聯網.這種狀況下Google開發瀏覽器Chrome,推出新的SPDY協議,並用在Chrome中,開啓了第二次"瀏覽器大戰",此次是Google獲勝,趁此將SPDY推上標準王座,互聯網標準化組織以SPDY爲基礎開始制定新版本的HTTP協議,最終於2015年發佈HTTP/2,RFC編號是7540.網站

HTTP/2的制定充分考慮瞭如今互聯網的現狀: 寬帶、移動、不安全,在高度兼容1.1的同時在性能改善方面作了很大努力,主要特色有:加密

  • 二進制協議,再也不是純文本
  • 可發起多個請求,廢棄1.1中的管道
  • 使用專用算法壓縮頭部,減小數據傳輸量
  • 容許服務器主動向哭護短推送數據
  • 加強安全性,事實上要求加密通訊

目前HTTP/2的普及率還比較低,主要是由於HTTP/1.1太經典和強勢,因此大部分網站仍是HTTP/1.1.

SPDY協議是基於TCP會話層的協議,主旨在於最小化網絡延遲,提高網絡速度.

HTTP/3

在HTTP/2還處於草案之時,Google又發明了一個新的協議,叫作QUIC,並且相同的套路,繼續在chrome和自家服務器實驗着玩,依託於龐大的用戶量和數據量,持續地推進QUIC協議成爲互聯網上的"既成事實".

2018年,互聯網標準化組織IETF提議將"HTTP over QUIC"改名爲"HTTP/3"並得到批准,HTTP/3進入標準化制定階段,也就兩三年後就會發布.

QUIC是基於UDP的協議,主旨在於低時延.

總結
  1. HTTP協議始於1989年蒂姆·伯納斯-李的一篇論文
  2. HTTP/0.9是個簡單的文本協議,只能獲取文本資源(get獲取純文本)
  3. HTTP/1.0確立瞭如今使用的大部分技術,但不是正式標準
  4. HTTP/1.1是目前互聯網使用最爲普遍的協議,功能也很是完善(第一個標準文檔).
  5. HTTP/2基於Google的SPDY協議,注重性能改善,但還未普及
  6. HTTP/3基於Google的QUIC協議,是未來的發展方向

TCP是河,HTTP是船

相關文章
相關標籤/搜索