HTTP版本之间的区别
一、HTTP1.0和HTTP1.1的區(qū)別
HTTP1.0最早在網(wǎng)頁中使用是在1996年,那個時候只是使用一些較為簡單的網(wǎng)頁上和網(wǎng)絡請求上,而HTTP1.1則在1999年才開始廣泛應用于現(xiàn)在的各大瀏覽器網(wǎng)絡請求中,同時HTTP1.1也是當前使用最為廣泛的HTTP協(xié)議。 主要區(qū)別主要體現(xiàn)在:
1、緩存處理。在HTTP1.0中主要使用header里的If-Modified-Since,Expires來做為緩存判斷的標準,HTTP1.1則引入了更多的緩存控制策略例如Entity tag,If-Unmodified-Since, If-Match, If-None-Match等更多可供選擇的緩存頭來控制緩存策略。
2、帶寬優(yōu)化及網(wǎng)絡連接的使用。HTTP1.0中,存在一些浪費帶寬的現(xiàn)象,例如客戶端只是需要某個對象的一部分,而服務器卻將整個對象送過來了,并且不支持斷點續(xù)傳功能,HTTP1.1則在請求頭引入了range頭域,它允許只請求資源的某個部分,即返回碼是206(Partial Content),這樣就方便了開發(fā)者自由的選擇以便于充分利用帶寬和連接。
3、錯誤通知的管理。在HTTP1.1中新增了24個錯誤狀態(tài)響應碼,如409(Conflict)表示請求的資源與資源的當前狀態(tài)發(fā)生沖突;410(Gone)表示服務器上的某個資源被永久性的刪除。
4、Host頭處理。在HTTP1.0中認為每臺服務器都綁定一個唯一的IP地址,因此,請求消息中的URL并沒有傳遞主機名(hostname)。但隨著虛擬主機技術(shù)的發(fā)展,在一臺物理服務器上可以存在多個虛擬主機(Multi-homed Web Servers),并且它們共享一個IP地址。HTTP1.1的請求消息和響應消息都應支持Host頭域,且請求消息中如果沒有Host頭域會報告一個錯誤(400 Bad Request)。
5、長連接。HTTP 1.1支持長連接(PersistentConnection)和請求的流水線(Pipelining)處理,在一個TCP連接上可以傳送多個HTTP請求和響應,減少了建立和關閉連接的消耗和延遲,在HTTP1.1中默認開啟Connection: keep-alive,一定程度上彌補了HTTP1.0每次請求都要創(chuàng)建連接的缺點。
二、HTTP2.0和HTTP1.X相比的新特性
1、新的二進制格式(Binary Format)。HTTP1.x的解析是基于文本。基于文本協(xié)議的格式解析存在天然缺陷,文本的表現(xiàn)形式有多樣性,要做到健壯性考慮的場景必然很多,二進制則不同,只認0和1的組合。基于這種考慮HTTP2.0的協(xié)議解析決定采用二進制格式,實現(xiàn)方便且健壯。
2、多路復用(MultiPlexing)。即連接共享,即每一個request都是是用作連接共享機制的。一個request對應一個id,這樣一個連接上可以有多個request,每個連接的request可以隨機的混雜在一起,接收方可以根據(jù)request的 id將request再歸屬到各自不同的服務端請求里面。
3、header壓縮。如HTTP1.x的header帶有大量信息,而且每次都要重復發(fā)送,HTTP2.0使用encoder來減少需要傳輸?shù)膆eader大小,通訊雙方各自cache一份header fields表,既避免了重復header的傳輸,又減小了需要傳輸?shù)拇笮 ?/p>
4、服務端推送(server push)。同SPDY一樣,HTTP2.0也具有server push功能。
三、HTTPS與HTTP的一些區(qū)別
1、HTTPS協(xié)議需要到CA申請證書,一般免費證書很少,需要交費。
 2、HTTP協(xié)議運行在TCP之上,所有傳輸?shù)膬?nèi)容都是明文,HTTPS運行在SSL/TLS之上,SSL/TLS運行在TCP之上,所有傳輸?shù)膬?nèi)容都經(jīng)過加密的。
 3、HTTP和HTTPS使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443。
 4、HTTPS可以有效的防止運營商劫持,解決了防劫持的一個大問題。
總結(jié)
以上是生活随笔為你收集整理的HTTP版本之间的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 汪海的blog
- 下一篇: 安装VS2010旗舰版时出现.Net f
