HTTP 1.0和 HTTP 1.1 有以下區(qū)別:連接方面,http1.0 默認(rèn)使用非持久連接,而 http1.1 默認(rèn)使用持久連接。http1.1 通過使用持久連接來使多個(gè) http 請(qǐng)求復(fù)用同一個(gè) TCP 連接,以此來避免使用非持久連接時(shí)每次需要建立連接的時(shí)延。
資源請(qǐng)求方面,在 http1.0 中,存在一些浪費(fèi)帶寬的現(xiàn)象,例如客戶端只是需要某個(gè)對(duì)象的一部分,而服務(wù)器卻將整個(gè)對(duì)象送過來了,并且不支持?jǐn)帱c(diǎn)續(xù)傳功能,http1.1 則在請(qǐng)求頭引入了 range 頭域,它允許只請(qǐng)求資源的某個(gè)部分,即返回碼是 206(Partial Content),這樣就方便了開發(fā)者自由的選擇以便于充分利用帶寬和連接。
緩存方面,在 http1.0 中主要使用 header 里的 If-Modified-Since、Expires 來做為緩存判斷的標(biāo)準(zhǔn),http1.1 則引入了更多的緩存控制策略,例如 Etag、If-Unmodified-Since、If-Match、If-None-Match 等更多可供選擇的緩存頭來控制緩存策略。
http1.1 中新增了 host 字段,用來指定服務(wù)器的域名。http1.0 中認(rèn)為每臺(tái)服務(wù)器都綁定一個(gè)唯一的 IP 地址,因此,請(qǐng)求消息中的 URL 并沒有傳遞主機(jī)名(hostname)。但隨著虛擬主機(jī)技術(shù)的發(fā)展,在一臺(tái)物理服務(wù)器上可以存在多個(gè)虛擬主機(jī),并且它們共享一個(gè)IP地址。因此有了 host 字段,這樣就可以將請(qǐng)求發(fā)往到同一臺(tái)服務(wù)器上的不同網(wǎng)站。http1.1 相對(duì)于 http1.0 還新增了很多請(qǐng)求方法,如 PUT、HEAD、OPTIONS 等。