(chap 3 Http报文内的http信息) 编码提升传输速率(1)
HTTP在傳輸數(shù)據(jù)時可以按照數(shù)據(jù)原貌直接傳輸,但也可以傳輸過程中通過提升傳輸速率。
1. 報文主體和實體主體
HTTP報文的主體用于傳輸請求或響應(yīng)的實體主體。通常報文主體等于實體主體。只有當(dāng)傳輸中進行編碼操作時,實體主體的內(nèi)容發(fā)生變化,才導(dǎo)致它和報文主體產(chǎn)生差異。
-
報文( message )
HTTP通信中的基本單位,由8位組字節(jié)流( octet sequence,其中 octet為8個比特)組成,通過HTTP通信傳輸。 -
實體( entity )
作為請求或響應(yīng)的有效載荷數(shù)據(jù)(補充項)被傳輸,其內(nèi)容由實體首部和實體主體組成。
2. 內(nèi)容編碼
內(nèi)容編碼指明應(yīng)用在實體內(nèi)容上的編碼格式,并保持實體信息原樣壓縮。內(nèi)容編碼后的實體由客戶端接收并負(fù)責(zé)解碼。
- 在傳輸時編碼,有能效的處理大量訪問請求。但是編碼的操作需要計算機來完成,因此會消耗更多的CPU等資源
- 常見的壓縮傳輸?shù)膬?nèi)容編碼格式:gzip 、conpress 、 deflate 、 identity(不進行編碼)
3. 分割發(fā)送的分塊傳輸編碼
HTTP/1.1中存在一種稱為傳輸編碼( Transfer Coding)的機制,在HTTP通信過程中,請求的編碼實體資源尚未全部傳輸完成之前,瀏覽器無法顯示請求頁面。在傳輸大容量數(shù)據(jù)時,通過把數(shù)據(jù)分割成多塊,能夠讓瀏覽器逐步顯示頁面。
- 分塊傳輸編碼會將實體主體分成多個部分(塊)。每一塊都會用十六進制來標(biāo)記塊的大小,而實體主體的最后一塊會使用“0(CR+LF)”來標(biāo)記。
- 使用分塊傳輸編碼的實體主體會由接收的客戶端負(fù)責(zé)解碼,恢復(fù)到編碼前的實體主體。
總結(jié)
以上是生活随笔為你收集整理的(chap 3 Http报文内的http信息) 编码提升传输速率(1)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (chap 2 简单的Http协议)
- 下一篇: (chap 3 Http报文内的http