http協議各版本的區別

HTTP(Hypertext transfer protocol)超文本傳輸協議,是一個應用層的通訊協議。服務器

 

HTTP協議版本介紹:網絡

 

HTTP/0.9 :只接受GET一種請求方法,沒有在通訊中指定版本號,且不支持請求頭。因爲該版本不支持POST方法,所以客戶端沒法向服務器傳遞太多信息。優化

HTTP/1.0 :第一個在通訊中指定的版本號,至今被普遍採用,特別是在代理服務器中。編碼

HTTP/1.1 :當前版本號,持久鏈接被默認採用,並能很好地配合代理服務器工做。還支持以管道方式在同時發送多個請求,以便下降線路負載,提升傳輸速度。代理

HTTP/2.0 正在開發中······對象

HTTP/1.1與HTTP/1.0的區別:圖片

1.persistent connection(持久鏈接)ip

HTTP/1.0中,每對請求/ 響應都使用一個新的鏈接。資源

HTTP/1.1則支持持久鏈接(默認)。開發

2.Host域

HTTP/1.1在請求消息頭多一個Host域;HTTP/1.0  則沒有這個域,創建TCP鏈接的時候已經指定了IP地址,並且默認一個IP地址只對應一個主機名,IP地址上只有一個host。

3.帶寬優化

HTTP/1.1中在請求消息中引入了range頭域,它容許只請求資源的某個部分。在響應消息中Content-Range頭域聲明瞭返回的這部分對象 的偏移值和長度。若是服務器相應地返回了對象所請求範圍的內容,則響應碼爲206(Partial Content),它能夠防止Cache將響應誤覺得是完整的一個對象。請求消息中若是包含比較大的實體內容,但不肯定服務器是否可以接收該請求(如是否有權限),此時若貿然發出帶實體的請求,若是被拒絕也會浪費帶寬。 HTTP/1.1加入了一個新的狀態碼100(Continue)。客戶端事先發送一個只帶頭域的請求,若是服務器由於權限拒絕了請求,就回送響應碼 401(Unauthorized);若是服務器接收此請求就回送響應碼100,客戶端就能夠繼續發送帶實體的完整請求了。注意,HTTP/1.0的客戶 端不支持100響應碼。

    節省帶寬資源的一個很是有效的作法就是壓縮要傳送的數據。Content-Encoding是對消息進行端到端(end-to-end)的編碼,它多是 資源在服務器上保存的固有格式(如jpeg圖片格式);在請求消息中加入Accept-Encoding頭域,它能夠告訴服務器客戶端可以解碼的編碼方 式。而Transfer-Encoding是逐段式(hop-by-hop)的編碼,如Chunked編碼。在請求消息中加入TE頭    域用來告訴服務器可以接收的transfer-coding方式。

4.請求方法和狀態碼

HTTP1.1增長了OPTIONS, PUT, DELETE, TRACE, CONNECT這些Request方法

HTTP/1.0中只定義了16個狀態響應碼,對錯誤或警告的提示不夠具體。HTTP/1.1引入了一個Warning頭域,增長對錯誤或警告信息的描述。

在HTTP/1.1中新增了24個狀態響應碼,如409(Conflict)表示請求的資源與資源的當前狀態發生衝突;410(Gone)表示服務器上的某個資源被永久性的刪除。

5.內容協商

爲 了知足互聯網使用不一樣母語和字符集的用戶,一些網絡資源有不一樣的語言版本(如中文版、英文版)。HTTP/1.0定義了內容協商 (content negotiation)的概念,也就是說客戶端能夠告訴服務器本身能夠接收以何種語言(或字符集)表示的資源。例如若是服務器不能明確 客戶端須要何種類型的資源,會返回300(Multiple Choices),幷包含一個列表,用來聲明該資源的不一樣可用版本,而後客戶端在請求消息中包含Accept-Language和Accept- Charset頭域指定須要的版本。

 

6.狀態碼

100~199:信息狀態碼,表示成功接收請求,要求客戶端繼續提交下一次請求才能完成整個處理過程

100(continue)繼續發送

200~299:成功狀態碼,表示成功接收請求並已完成整個處理過程,經常使用200(OK)成功接收

300~399:重定向狀態碼,例如,請求的資源已經移動一個新地址,經常使用30二、307和304

400~499:客戶端的請求有錯誤,經常使用404(Not Found),403(Fobidden)

500~599:服務器端出現錯誤,經常使用 500

相關文章
相關標籤/搜索