HTTP 的發展歷程(總結自用)

2021-10-07 18:08:50 字數 1224 閱讀 9652

只是乙個草案,純文字格式。蒂姆.伯納斯-李最初設想的系統裡的文件都是唯讀的,所以只允許用"get" 動作從伺服器上獲取html文件,並且在響應請求之後立即關閉連線,功能非常有限。

2023年正式發布

1. 增加了head、post等方法

2. 增加了響應狀態碼,標記可能的錯誤原因

3. 引入了協議版本號概念,

4. 引入了http header頭概念

5. 傳輸的資料不僅限於文字

在1.0中伺服器傳送完乙個http響應後,會斷開連線。1.0中確立了大部分現在使用的技術,但是它還不是乙個正式的標準

2023年,http1.1發布了rfc文件,

http1.1是目前網際網路上使用最廣泛的協議,功能也十分完善。

1.增加了put、 delete等新的方法;

2.增加了快取管理和控制;

3.明確了連線管理,允許持久連線; 

4.允許響應資料分塊(chunked),

利於傳輸大檔案;

5.強制要求host頭,讓網際網路主機託管成為可能。

1.1中把connection 頭寫進標準,預設開啟久連線,connection:keep-alive。什麼時候關閉?timeout=20;設定超時時間;max = ***;長連線最多接收***次請求就斷開。

相對於http 1.1來說

1. 提公升訪問速度

2. 允許多路復用

3. 二進位制分幀

http 1.x的解析是基於文字,基於文字協議的格式解析存在天然缺陷。

4. 首部壓縮

http 1.x中header有大量資訊,且每次都重**送,http 2.0用encoder減少傳輸header大小,通訊雙方各cashe乙份header fileds表。

5. 伺服器推送(server push)

http2.0 基於google的spdy協議,注重效能改善,但還沒有普及。

http3.0基於google的quic協議,是將來的發展方向。

q1:乙個tcp連線可以對應幾個http請求?

在長連線裡可以對應多個

q2:tcp連線中http請求傳送可以一起嗎?

在1.1中,pipelining技術可以完成多個請求同發,但是瀏覽器預設關閉,所以仍然認為不可行,

在2.0中,multiplexing多個請求可以在同乙個tcp連線中並行進行

q3:瀏覽器如何提高頁面載入的效率?

同乙個連線順序處理多個或者和伺服器建立多個tcp連線。

HTTP協議發展歷程

http超文字傳輸協議是乙個用於傳輸超文字文件的應用層協議,它是為web瀏覽器與web伺服器之間的通訊而設計的,http協議到目前為止全部的版本可以分為http 0.9 http 1.0 http 1.1 http 2.0 http 3.0,其中現在普遍應用的版本是http 1.1版本,正在推進ht...

HTTP協議發展歷程

http超文字傳輸協議是乙個用於傳輸超文字文件的應用層協議,它是為web瀏覽器與web伺服器之間的通訊而設計的,http協議到目前為止全部的版本可以分為http 0.9 http 1.0 http 1.1 http 2.0 http 3.0,其中現在普遍應用的版本是http 1.1版本,正在推進ht...

HTTP協議發展歷程

http超文字傳輸協議是乙個用於傳輸超文字文件的應用層協議,它是為web瀏覽器與web伺服器之間的通訊而設計的,http協議到目前為止全部的版本可以分為http 0.9 http 1.0 http 1.1 http 2.0 http 3.0,其中現在普遍應用的版本是http 1.1版本,正在推進ht...