http1 0和http1 1的區別

2022-07-13 09:51:07 字數 1038 閱讀 8252

在同乙個tcp的連線中可以傳送多個http請求和響應.

多個請求和響應可以重疊,多個請求和響應可以同時進行.

更加多的請求頭和響應頭(比如http1.0沒有host的字段).

總之,在 http/1.0 中,大多實現為每個請求/響應交換使用新的連線。在 http/1.1 中,乙個連線可用於一次或多次請求/響應交換,儘管連線可能由於各種原因被關閉.這是他們之間最大的分別.

http/1.0 這種多連線的運作模式是可以改進的。建立 tcp 連線的過程是這樣:客戶端給伺服器發乙個網路包說我要和你建立連線,伺服器收到之後回乙個網路包說「我願意」,然後客戶端要再發給伺服器乙個網路包說「好 那咱們開始傳資料吧」。這一來一去三個包才能建立 tcp 連線。連線建立之後,瀏覽器給伺服器發請求,伺服器給瀏覽器回應。完事之後又要來回幾個網路包關閉 tcp 連線。如果頁面有很多檔案長度很短的元素,每個元素都需要單建一條連線就會導致網路上大量的都是 tcp 建立連線和斷開連線的網路包。

另外,tcp 有乙個特性叫做 slow start,其含義可以大致這樣解釋:tcp 連線要求傳送端傳送一定數量的網路包之後接收端就要回乙個「我收到」的網路包,而且網路包在經過每個路由器的時候包頭都要被重寫,所以在網路不丟包的情況 下網路包越大網路的效率就越高。tcp 連線尋找最優網路包大小的方法是,在 tcp 連線建立的初期,網路包的大小是很小的,根據網路狀況,兩端的程式才會逐步增大網路包的大小以適應頻寬提高網路傳輸的效率。所以瀏覽器給伺服器發請求,如 果每發乙個請求就關閉連線的話,那這個連線的資料傳輸很難達到頻寬所能承載的速度。

基於這種種原因,http/1.1 很快出來了,提出了持久連線(persistent connection)的概念,也就是說同一條 http 連線,可以同時處理多個請求,同時用一定的機制保證各個請求之間的分離性。具體的操作過程是:伺服器給瀏覽器傳送回應之後,並不馬上關閉連線;瀏覽器判斷 上乙個請求的回應已經收完的情況下,可以在這同乙個連線上發第二個請求。這種運作模式大大減少了網路包,實驗也表明這種做法很有效。但是,由於伺服器上保 持連線要占用一定的資源,所以一般伺服器不會永久保持持久連線,而且也不推薦瀏覽器和伺服器之間建立過多的持久連線。

摘錄自:

HTTP1 0 和 HTTP1 1的區別

這個應該是變化最大的乙個了.在1.0的版本中,如果客戶端請求頭沒有設定connection keep alive的話,那麼每次請求完成都會立即斷開連線,然後客戶端又要重新建立乙個http連線.假設乙個網頁包含了10個,那麼為了請求,客戶端必須要傳送10次請求,無疑這對頻寬和資源是極大的浪費,tcp的...

HTTP 1 0 和HTTP 1 1 的區別

區別一 最重要 http 1.1 加入了 1 持久連線 http persistent connections 也稱為 http keep alive,持久連線的特點是,只要任意一端沒有明確提出斷開連線,則保持tcp連線狀態 2 管線化 也叫流水線 pipelining 以前傳送請求後需要等待並且收...

HTTP1 0和HTTP1 1的區別

http 1.0規定瀏覽器與伺服器只保持短暫的連線,瀏覽器每次都需要與伺服器建立乙個tcp連線,伺服器完成請求後,立即斷開tcp連線,也就是說,同乙個客戶第二次訪問同乙個伺服器上的頁面時,伺服器的響應過程與第一次被訪問時是相同的。舉例在收到的html文件後,文件中有10個,每個都要重新再次建立連線獲...