HTTP1.1 和 HTTP1.0 的區(qū)別

一、概述

1.HTTP1.0 最早在1996年在網(wǎng)頁中被使用,那時(shí)只是使用在一些較為簡單的網(wǎng)頁上和網(wǎng)絡(luò)請(qǐng)求上。

2.HTTP1.1 在 1999年開始廣泛應(yīng)用于現(xiàn)在的各大瀏覽器網(wǎng)絡(luò)請(qǐng)求中,同時(shí)HTTP1.1 也是當(dāng)前使用最為廣泛的 HTTP 協(xié)議。

3.HTTP1.0和HTTP1.1都不提供加密和身份驗(yàn)證機(jī)制。2者主要區(qū)別如下:


二、緩存處理

1.HTTP1.0 中主要使用 header 里的If-Modified-Since,Expires ,Pragma等字段進(jìn)行緩存處理。

2.HTTP1.1 引入了更多的緩存控制策略,例如 Entity tag,If-Unmodified-Since, If-Match, If-None-Match等,這樣可以使用更多可供選擇的緩存頭來控制緩存策略。


三、帶寬優(yōu)化及網(wǎng)絡(luò)連接的使用

1.HTTP1.0 中,存在一些浪費(fèi)帶寬的現(xiàn)象,例如客戶端只是需要某個(gè)對(duì)象的一部分,而服務(wù)器卻將整個(gè)對(duì)象傳輸?shù)娇蛻舳?,這是因?yàn)樗恢С謹(jǐn)帱c(diǎn)續(xù)傳功能。

2.HTTP1.1 則在請(qǐng)求頭引入了 range 字段,它允許只請(qǐng)求資源的某個(gè)部分,即返回碼是 206(Partial Content),這樣通過支持?jǐn)帱c(diǎn)續(xù)傳功能方便了開發(fā)者充分利用帶寬和連接。


四、錯(cuò)誤通知的管理

1.在 HTTP1.1 中新增了 24 個(gè)錯(cuò)誤狀態(tài)響應(yīng)碼,如 409(Conflict)

表示請(qǐng)求的資源與資源的當(dāng)前狀態(tài)發(fā)生沖突;410(Gone)表示服務(wù)器上的某個(gè)資源被永久性的刪除。

2.HTTP1.1 中可以使用Transfer-Encoding頭字段來傳輸錯(cuò)誤信息。


五、Host 頭處理

1.在 HTTP1.0 中認(rèn)為每臺(tái)服務(wù)器都綁定一個(gè)唯一的 IP 地址,因此,請(qǐng)求消息中的 URL 并沒有傳遞主機(jī)名(Hostname)。

2.但隨著虛擬主機(jī)技術(shù)的發(fā)展,在一臺(tái)物理服務(wù)器上可以存在多個(gè)虛擬主機(jī)(Multi-homed Web Servers),并且它們共享同一個(gè) IP 地址。HTTP1.1 的請(qǐng)求消息和響應(yīng)消息都支持 Host 頭域,且請(qǐng)求消息中如果沒有 Host 頭域會(huì)報(bào)告一個(gè)錯(cuò)誤(400 Bad Request)。這使得在同一個(gè)IP地址上部署多個(gè)域名成為可能,極大地推動(dòng)了虛擬主機(jī)技術(shù)的發(fā)展。


六、長連接

1.HTTP 1.1 支持長連接(Persistent Connection或Keep-Alive連接)和請(qǐng)求的流水線(Pipelining)處理,在一個(gè) TCP 連接上可以傳送多個(gè) HTTP 請(qǐng)求和響應(yīng),減少了建立和關(guān)閉連接的消耗和延遲。在 HTTP1.1 中默認(rèn)開啟 Connection:Keep-Alive,彌補(bǔ)了 HTTP1.0 每次請(qǐng)求都要?jiǎng)?chuàng)建連接的缺點(diǎn)。

2.HTTP1.0 不支持請(qǐng)求管道化,即在一個(gè)連接上不能同時(shí)發(fā)送多個(gè)請(qǐng)求。

HTTP1.1 支持請(qǐng)求管道化,同一連接上可以同時(shí)發(fā)送多個(gè)請(qǐng)求。但服務(wù)器必須按照請(qǐng)求的順序進(jìn)行響應(yīng),因此可能會(huì)造成隊(duì)頭阻塞(Head of Line Blocking)問題。


七、內(nèi)容協(xié)商

1.HTTP1.0內(nèi)容協(xié)商功能有限。

2.HTTP1.1引入了Accept,Accept-Charset,Accept-Encoding,Accept-Language等頭部字段,允許進(jìn)行更靈活的內(nèi)容協(xié)商。


八、傳輸大小和壓縮

1.HTTP1.0默認(rèn)沒有限制傳輸?shù)拇笮?,?duì)數(shù)據(jù)壓縮支持有限。

2.HTTP1.1引入了chunked機(jī)制,允許數(shù)據(jù)分塊傳輸,并且可以傳輸大小未知的數(shù)據(jù)。支持Content-Encoding壓縮數(shù)據(jù),支持Transfer-Encoding進(jìn)行分塊傳輸。


九、請(qǐng)求方法

1.HTTP1.0支持基本的請(qǐng)求方法,如GET,POST,HEAD等。

2.HTTP1.1新增了一些請(qǐng)求方法,如OPTIONS,PUT,DELETE,TRACE,CONNECT等。







微風(fēng)不燥,陽光正好,你就像風(fēng)一樣經(jīng)過這里,愿你停留的片刻溫暖舒心。

我是程序員小迷(致力于C、C++、Java、Kotlin、Android、iOS、Shell、JavaScript、TypeScript、Python等編程技術(shù)的技巧經(jīng)驗(yàn)分享),若作品對(duì)您有幫助,請(qǐng)關(guān)注、分享、點(diǎn)贊、收藏、在看、喜歡,您的支持是我們?yōu)槟峁椭淖畲髣?dòng)力。

歡迎關(guān)注。助您在編程路上越走越好!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容