長連接和http管線化。早期的http協(xié)議工作機制比較簡單,默認情況下http協(xié)議中每個tcp連接只能承載一個http請求和響應,瀏覽器發(fā)送一個請求給服務器,服務端回復完成后隨即斷開連接,當瀏覽器需要請求新的資源時,需要重新建立tcp連接。隨著web技術的發(fā)展,網(wǎng)頁文件中包含越來越多文件,尤其是圖片和媒體文件,這會導致瀏覽器獲取服務器資源的效率降低。http1.1增加了長連接機制,在建立tcp連接后,只要一方不顯式斷開連接,tcp連接就不會斷開。這樣后續(xù)資源請求均可基于之前的tcp連接,減少了tcp連接建立和斷開的時間,有利于加快網(wǎng)頁文件響應速度。
http1.1還增加了管線化支持,引入管線化機制之前,瀏覽器和服務端采用一問一答的形式,瀏覽器在收到上一個http請求的回復后才能發(fā)送http下一個請求,基于管線化技術可以將多個http請求一次性填充在一個tcp包內(nèi)一次性提交給服務器,在發(fā)送過程中不需要等待服務端對上一個請求的回復,減少了網(wǎng)絡上傳輸?shù)膖cp數(shù)據(jù)包,減輕了網(wǎng)絡負載。http管線化基于長連接實現(xiàn),需要瀏覽器和服務器兩者配合才能實現(xiàn)。
管線化技術可以加快網(wǎng)頁文件的加載時間,尤其在具有高延遲的網(wǎng)絡連接環(huán)境中,在速度較快的網(wǎng)絡連接環(huán)境中,管線化技術可能提速不明顯,首先只有get和head等請求可以進行管線化,post請求不能進行管線化,使用場景有限;其次,服務器端要按照請求順序回復,這有可能會導致隊頭阻塞問題。