HTTP協議幾個版本的理解

2022-08-27 00:12:12 字數 2085 閱讀 2129

http是乙個應用層協議,基於tcp協議(傳輸層)之上,規定www伺服器

瀏覽器之間資訊傳遞規範。使用的預設埠號為80埠。

最初的版本,只有乙個命令get,伺服器只能回應html格式字串。
引入了新的命令post和head(http資料頭部)命令

每個tcp連線只能傳送乙個請求,傳送資料完畢,連線就關閉,如果還要請求其他資源,就必須再新建乙個連線

頭資訊是 ascii 碼,後面資料可為任何格式。伺服器回應時會告訴客戶端,資料是什麼格式,即content-type欄位的作用。這些資料型別總稱為mime即多用途網際網路郵件擴充套件,每個值包括一級型別和二級型別,預定義的型別,也可自定義型別, 常見content-type值:text/xml image/jpeg audio/***

新增方法:put、patch、options、delete

引入了持久連線(persistent connection),即tcp連線預設不關閉,可以被多個請求復用,不用宣告connection: keep-alive。對於同乙個網域名稱,大多數瀏覽器允許同時建立6個持久連線引入了管道機制,即在同乙個tcp連線裡,客戶端可以同時傳送多個請求,進一步改進了http協議的效率

同乙個tcp連線裡,所有的資料通訊是按次序進行的。伺服器只能順序處理回應,前面的回應慢,會有許多請求排隊,造成"隊頭堵塞"(head-of-line blocking)

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

1.傳輸資料是明文

2.header頭部資料太長

3.每次傳輸還是要重新連線

4.server不能主動push

這樣就推動了http2.0的出現

http2.0是spdy(谷歌公司研發的https的一種協議)的公升級版

1.頭資訊和資料體都是二進位制,稱為頭資訊幀和資料幀

2.復用tcp連線,在乙個連線裡,客戶端和瀏覽器都可以同時傳送多個請求或回應,且不用按順序一一對應,避免了「隊頭堵塞「,此雙向的實時通訊稱為多工(multiplexing)

3.引入頭資訊壓縮機制(header compression),頭資訊使用gzip或compress壓縮後再傳送;客戶端和伺服器同時維護一張頭資訊表,所有欄位都會存入這個表,生成乙個索引號,不傳送同樣字段,只傳送索引號,提高速度

4.http/2 允許伺服器未經請求,主動向客戶端傳送資源,即伺服器推送(server push)

1.長連線

http 1.1支援長連線(persistentconnection)和請求的流水線(pipelining)處理,在乙個tcp連線上可以傳送多個http請求和響應,減少了建立和關閉連線的消耗和延遲,在http1.1中預設開啟connection: keep-alive,彌補了http1.0每次請求都要建立連線的缺點

2.快取處理

在http1.0中主要使用header裡的if-modified-since,expires來做為快取判斷的標準,http1.1則引入了更多的快取控制策略例如entity tag,if-unmodified-since, if-match, if-none-match等更多可供選擇的快取頭來控制快取策略

3.頻寬優化和網路連線的使用

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

4.錯誤通知的管理

在http1.1中新增24個狀態響應碼,如

409(conflict)表示請求的資源與資源當前狀態衝突;.

410(gone)表示伺服器上的某個資源被永久性的刪除

5.host頭處理

在http1.0中認為每台伺服器都繫結乙個唯一的ip位址,因此,請求訊息中的url並沒有傳遞主機名(hostname)。但隨著虛擬主機技術的發展,在一台物理伺服器上可以存在多個虛擬主機(multi-homed web servers),並且它們共享乙個ip位址。http1.1的請求訊息和響應訊息都應支援host頭域,且請求訊息中如果沒有host頭域會報告乙個錯誤(400 bad request)

HTTP協議的理解

web api介面 大都是基於 http 協議的,所以,要進行介面測試 首先要了解 http 協議 的 基礎知識。http 協議 全稱是 超文字傳輸協議,英文是 hypertext transfer protocol http協議最大的特點是通訊雙方分為客服端和服務端,雙方進行資訊的互動。目前,ht...

Http協議的幾個步驟

http通訊機制是在一次完整的http通訊過程中,web瀏覽器與web伺服器之間將完成下列7個步驟 1.建立tcp連線 在http工作開始之前,web瀏覽器首先要通過網路與web伺服器建立連線,該連線是通過tcp來完成的,該協議與ip協議共同構建internet,即著名的tcp ip協議族,因此in...

Http協議理解

http是hypertext transfer protocal 超文字傳輸協議 的簡寫,它是tcp ip協議集中的乙個應用層協議,用於定義web瀏覽器與web伺服器之間交換資料的過程以及資料本身的格式。http 1.0是早期版本,當前版本是http 1.1,http ng處於試驗階段,是下一代的h...