HTTP1.1 優缺點

admin發表於2019-04-23

當前市面上廣泛的應用的版本依然是HTTP1.1,起碼在中國依然如此。

此版本子1997年釋出,至今已經二十餘年,經歷了網際網路軟硬體大發展的時期。

可見此版本的成熟和網際網路發展的貢獻之大,但任何版本都不可能做到一勞永逸。

隨著網際網路的進一步發展,資料交換量的加大,HTTP1.1版本的缺點逐漸顯現出來。

下面分別簡單介紹一下HTTP1.1版本的優點和缺點,更多相關細節可以參閱本版塊其他文章。

一.HTTP1.1版本優點:

1.增加永續性連線:

由於每一次TCP連線都是非常耗費資源的操作,所以在HTTP1.0版本增加永續性連線的某些特性。

簡單程式碼片段如下:

[HTML] 純文字檢視 複製程式碼
Connection: keep-alive

但是上述並非標準欄位,各個瀏覽器器的支援並不一致,所以HTTP1.1對永續性連線進行了標準化。

考慮到篇幅問題,本文不做詳細介紹,具體可以參閱HTTP 持久連線一章節。

2.增加管道機制:

首先簡單介紹一下HTTP1.0版本時請求的特點,分佈簡述如下:

(1).假設有請求A和請求B。

(2).首先發出請求A,請求B處於等待狀態。

(3).B請求必須等待A請求發出之後,且請求響應返回之後才能發出。

(4).這個排隊規則有點浪費資源了。

HTTP1.1版本改進上了上述排隊方式,也就是增加了管道機制,請求可以同時發出,但是響應必須按照請求發出的順序依次返回,效能在一定程度上得到了改善,簡單圖示如下:

aid[3198]

3.分塊傳輸:

在HTTP1.0版本中,如果在伺服器端遇到較為耗費時間的操作。

那麼需要等到這一操作全部完成後,才會向客戶端傳送資料,那麼這一段等待時間是非常影響效能和客戶體驗。

HTTP1.1版本對上述問題進行了改進,可以沒必要等待資料完全處理完畢再返回,伺服器產生部分資料,那麼就傳送部分資料,很明此種方式更加優秀一些,可以節省很多等待時間。

4.增加host欄位:

在頭部增加host欄位最大的受益者應該是資金微弱的個人站長。

因為在部署網站的時候沒有必要買昂貴的獨立伺服器,只要買虛擬主機即可,成本大大降低。

此欄位可以指定請求的伺服器域名,下面是本站的一個HTTP請求頭的截圖:

a:3:{s:3:\"pic\";s:43:\"portal/201904/23/130210pbqitm6atae8sw8a.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

二.HTTP1.1版本缺陷:

雖然1.1版本的效能得到很大的改善,但是問題還是很大,簡述如下:

(1).此版本的網路延遲問題主要由於隊頭堵塞導致,雖然通過永續性連線得到改善,但是每一個請求的響應依然需要按照順序排隊,如果前面的響應處理較為耗費時間,那麼同樣非常耗費效能。

(2).還有此版本雖然引進了管道機制,但是當前存在諸多問題,且預設處於關閉狀態。

解決上述問題導致的延遲,可以有兩種方式,一種是在當前版本基礎上通過各種現有技術手段實現,另一種是應用http2版本,雖然當前瀏覽器支援或者其他方面問題較多,相信不遠的將來此版本一定會得到廣泛應用。

相關閱讀如下:

(1).HTTP請求延遲解決方案一章節。

(2).HTTP2協議介紹一章節。

相關文章