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