長鏈接
- http1.0
- 每對(duì)Request/Response都使用一個(gè)新的連接。
- 不支持?jǐn)帱c(diǎn)續(xù)傳档叔,每次都從RANGE:0(http1.1新增加字段)開始
其中HTTP1.0需要在request中增加”Connection: keep-alive“ header才能夠支持喂链,而HTTP1.1默認(rèn)支持 - http1.1
- 默認(rèn)使用長鏈接床牧,在同一個(gè)tcp鏈接可以傳送多個(gè)http請(qǐng)求和響應(yīng)财喳,同時(shí)也支持更多的請(qǐng)求頭和響應(yīng)頭b.允許同時(shí)在一條條件上發(fā)送多個(gè)請(qǐng)求残制,但是服務(wù)端必須按照接收請(qǐng)求的先后順序發(fā)送應(yīng)答包c(diǎn).host請(qǐng)求頭字段立砸,明確標(biāo)識(shí)服務(wù)器上的web站點(diǎn),http1.1還提供了身份認(rèn)證初茶、狀態(tài)管理和cache緩存機(jī)制相關(guān)的頭
帶寬優(yōu)化
- HTTP/1.1中在請(qǐng)求消息中引入了range頭域颗祝,在響應(yīng)消息中Content-Range頭域聲明了返回的這部分對(duì)象的偏移值和長度。如果服務(wù)器相應(yīng)地返回了對(duì)象所請(qǐng)求范圍的內(nèi)容恼布,則響應(yīng)碼為206(Partial Content)螺戳,它可以防止Cache將響應(yīng)誤以為是完整的一個(gè)對(duì)象。
- HTTP/1.1加入了一個(gè)新的狀態(tài)碼100(Continue)折汞,客戶端事先發(fā)送一個(gè)只帶頭域的請(qǐng)求倔幼,拒絕發(fā)送401; 接受則發(fā)送100,客戶端就可以繼續(xù)發(fā)送帶實(shí)體的完整請(qǐng)求了
消息傳遞
- HTTP/1.1中引入了Chunkedtransfer-coding來解決緩存完整消息帶來的性能問題,發(fā)送方將消息分割成若干個(gè)任意大小的數(shù)據(jù)塊爽待,每個(gè)數(shù)據(jù)塊在發(fā)送時(shí)都會(huì)附上塊的長度损同,最后用一個(gè)零長度的塊作為消息結(jié)束的標(biāo)志。這種方法允許發(fā)送方只緩沖消息的一個(gè)片段鸟款,避免緩沖整個(gè)消息帶來的過載
- 在HTTP/1.0中膏燃,有一個(gè)Content-MD5的頭域,要計(jì)算這個(gè)頭域需要發(fā)送方緩沖完整個(gè)消息后才能進(jìn)行何什。而HTTP/1.1中组哩,采用chunked分塊傳遞的消息在最后一個(gè)塊(零長度)結(jié)束之后會(huì)再傳遞一個(gè)拖尾(trailer),它包含一個(gè)或多個(gè)頭域,這些頭域是發(fā)送方在傳遞完所有塊之后再計(jì)算出值的禁炒。發(fā)送方會(huì)在消息中包含一個(gè)Trailer頭域告訴接收方這個(gè)拖尾的存在而咆。
響應(yīng)碼
- 在HTTP/1.1中新增了24個(gè)狀態(tài)響應(yīng)碼,如409(Conflict)表示請(qǐng)求的資源與資源的當(dāng)前狀態(tài)發(fā)生沖突幕袱;410(Gone)表示服務(wù)器上的某個(gè)資源被永久性的刪除暴备。
多路復(fù)用
HTTP/1.1 協(xié)議中 「瀏覽器客戶端在同一時(shí)間,針對(duì)同一域名下的請(qǐng)求有一定數(shù)量限制们豌,超過限制數(shù)目的請(qǐng)求會(huì)被阻塞涯捻;多路復(fù)用允許同時(shí)通過單一的 HTTP/2 連接發(fā)起多重的請(qǐng)求-響應(yīng)消息。
頭部壓縮
http1.1不支持頭部壓縮望迎, http2.0 支持頭部壓縮的hpack算法
http2.0使用二進(jìn)制數(shù)據(jù)流(實(shí)現(xiàn)方便且健壯)
http2.0沒有改變http1.1的語義障癌,而是在http1.1的header和body重新封裝了一層
流量控制
http2.0支持流量控制,和tcp的sliding window類似辩尊。http2.0 類似的使用receive window 的做法
更安全的ssl
使用tls的alpn來做協(xié)議升級(jí)涛浙,且通過黑名單機(jī)制禁用幾百種不再安全的加密算法
參考
https://www.zhihu.com/question/34074946
http://blog.csdn.net/hguisu/article/details/8608888
http://blog.csdn.net/forgotaboutgirl/article/details/6936982/