http几个版本的区别
http幾個版本的區(qū)別
http/0.9版本:只有一個命令GET,只支持純文本內(nèi)容
http1.0版本:
任何格式的內(nèi)容都可以發(fā)送,這使得互聯(lián)網(wǎng)不僅可以傳輸文字,還能傳輸圖像、視頻、二進制等文件。
除了GET命令,還引入了POST命令和HEAD命令。
http請求和回應的格式改變,除了數(shù)據(jù)部分,每次通信都必須包括頭信息(HTTP header),用來描述一些元數(shù)據(jù)
http1.1版本:
引入了持久連接( persistent connection),即TCP連接默認不關(guān)閉,可以被多個請求復用,不用聲明Connection: keep-alive。
引入了管道機制( pipelining),即在同一個TCP連接里,客戶端可以同時發(fā)送多個請求,進一步改進了HTTP協(xié)議的效率。
新增方法:PUT、 PATCH、 OPTIONS、 DELETE。
http協(xié)議不帶有狀態(tài),每次請求都必須附上所有信息。請求的很多字段都是重復的,浪費帶寬,影響速度。
http1.x版本問題:
http1.x在傳輸數(shù)據(jù)時,所有傳輸?shù)膬?nèi)容都是明文,客戶端和服務器端都無法驗證對方的身份,無法保證數(shù)據(jù)的安全性。
1.1版本允許復用TCP連接,但是同一個TCP連接里面,所有的數(shù)據(jù)通信是按次序進行的。服務器只有處理完一個回應,才會進行下一個回應,可能會造成Head-of-line blocking的問題。
http1.x支持了keep-alive,來彌補多次創(chuàng)建連接產(chǎn)生的延遲,但是keepalive使用多了同樣會給服務端帶來大量的性能壓力,并且對于單個文件被不斷請求的服務(例如圖片存放網(wǎng)站), keep-alive可能會極大的影響性能,因為它在文件被請求之后還保持了不必要的連接很長時間
總結(jié)
以上是生活随笔為你收集整理的http几个版本的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: golang实现生产者和消费者
- 下一篇: BOOL,int,float,指针变量