http版本號


一. 描述HTTP#

Copy
OSI協議層次: 應用層協議
作用: 規范瀏覽器之見信息傳遞.
端口: 80    

二. Http的版本演化#

1. http 0.9

Copy
最初的版本,只有一個命令GET,服務器只能回應HTML格式字符串。

2. http 1.0#

Copy
引入了新的命令POST和HEAD(http數據頭部)命令
每個TCP連接只能發送一個請求,發送數據完畢,連接就關閉,如果還要請求其他資源,就必須再新建一個連接
頭信息是 ASCII 碼,后面數據可為任何格式。服務器回應時會告訴客戶端,數據是什么格式,即Content-Type字段的作用。這些數據類型總稱為MIME即多用途互聯網郵件擴展,每個值包括一級類型和二級類型,預定義的類型,也可自定義類型, 常見Content-Type值:text/xml image/jpeg audio/mp3

3. http 1.1

Copy
新增方法:PUT、PATCH、OPTIONS、DELETE

引入了持久連接(persistent connection),即TCP連接默認不關閉,可以被多個請求復用,不用聲明Connection: keep-alive。對於同一個域名,大多數瀏覽器允許同時建立6個持久連接引入了管道機制,即在同一個TCP連接里,客戶端可以同時發送多個請求,進一步改進了HTTP協議的效率

同一個TCP連接里,所有的數據通信是按次序進行的。服務器只能順序處理回應,前面的回應慢,會有許多請求排隊,造成"隊頭堵塞"(Head-of-line blocking)

為避免上述問題,兩種方法:一是減少請求數,二是同時多開持久連接

沒有解決的問題:

Copy
1.傳輸數據是明文
2.header頭部數據太長
3.每次傳輸還是要重新連接
4.server不能主動push

4. Http2.0

Copy
HTTP2.0是SPDY(谷歌公司研發的https的一種協議)的升級版
1.頭信息和數據體都是二進制,稱為頭信息幀和數據幀
2.復用TCP連接,在一個連接里,客戶端和瀏覽器都可以同時發送多個請求或回應,且不用按順序一一對應,避免了“隊頭堵塞“,此雙向的實時通信稱為多工(Multiplexing)
3.引入頭信息壓縮機制(header compression),頭信息使用gzip或compress壓縮后再發送;客戶端和服務器同時維護一張頭信息表,所有字段都會存入這個表,生成一個索引號,不發送同樣字段,只發送索引號,提高速度
4.HTTP/2 允許服務器未經請求,主動向客戶端發送資源,即服務器推送(server push)

三. http1.0和http1.1的區別(面試題)

1. 長連接

Copy
HTTP 1.1支持長連接(PersistentConnection)和請求的流水線(Pipelining)處理,在一個TCP連接上可以傳送多個HTTP請求和響應,減少了建立和關閉連接的消耗和延遲,在HTTP1.1中默認開啟Connection: keep-alive,彌補了HTTP1.0每次請求都要創建連接的缺點

2. 緩存處理

Copy
在HTTP1.0中主要使用header里的If-Modified-Since,Expires來做為緩存判斷的標准,HTTP1.1則引入了更多的緩存控制策略例如Entity tag,If-Unmodified-Since, If-Match, If-None-Match等更多可供選擇的緩存頭來控制緩存策略

3. 帶寬優化和網絡連接的使用

Copy
HTTP1.0中,存在一些浪費帶寬的現象,例如:客戶端只是需要某個對象的一部分,而服務器卻將整個對象送過來了,並且不支持斷點續傳功能,HTTP1.1則在請求頭引入了range頭域,它允許只請求資源的某個部分,即返回碼是206(Partial Content),方便了開發者自由的選擇以便於充分利用帶寬和連接

4. 錯誤通知的管理

Copy
在HTTP1.1中新增24個狀態響應碼,如
409(Conflict)表示請求的資源與資源當前狀態沖突;.
410(Gone)表示服務器上的某個資源被永久性的刪除

5. Host頭處理

Copy
在HTTP1.0中認為每台服務器都綁定一個唯一的IP地址,因此,請求消息中的URL並沒有傳遞主機名(hostname)。但隨着虛擬主機技術的發展,在一台物理服務器上可以存在多個虛擬主機(Multi-homed Web Servers),並且它們共享一個IP地址。HTTP1.1的請求消息和響應消息都應支持Host頭域,且請求消息中如果沒有Host頭域會報告一個錯誤(400 Bad Request)

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM