軟體測試必須掌握的http網路協議知識

測試人生路發表於2020-12-29

一、http1、http2、http3的區別

1、http1

1)持久連線:一個TCP連線可以傳輸多個(6個)http請求,預設持久連線

2)不成熟的管線化:等一個請求回來再去發另外一個請求

3)安全機制差

2、http2

1)基於SPDY協議,專注於效能,目標是一個使用者和網站只需要進行一次連線

2)二進位制傳輸:將請求和響應分為小的幀,採用二進位制編碼,以前的headbopdy變成幀資料

3)頭部head壓縮:只傳送有差異的資料

4)多路複用:只要建立一個TCP/IP[連線,多路並行,傳送響應都在同一個連線進行

5)服務端推送 server push

6)提供安全性 https

3、http3

1)基於QUIL的UDP,取了TCP和TLS加密的精華

2)提供安全性 https:非對稱加密,公鑰和私鑰。客戶端 服務端

4、總結

HTTP/1.1有兩個主要的缺點:安全不足和效能不高。HTTP/2完全相容HTTP/1,是“更安全的HTTP、更快的HTTPS",頭部壓縮、多路複用等技術可以充分利用頻寬,降低延遲,從而大幅度提高上網體驗;QUIC 基於 UDP 實現,是 HTTP/3 中的底層支撐協議,該協議基於 UDP,又取了 TCP 中的精華,實現了即快又可靠的協議。

二、HTTP協議的主要特點

1、支援客戶/伺服器模式。

2.簡單快速:客戶向伺服器請求服務時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。每種方法規定了客戶與伺服器聯絡的型別不同。由於HTTP協議簡單,使得HTTP伺服器的程式規模小,因而通訊速度很快。

3.靈活:HTTP允許傳輸任意型別的資料物件。正在傳輸的型別由Content-Type加以標記。

4.無連線:無連線的含義是限制每次連線只處理一個請求。伺服器處理完客戶的請求,並收到客戶的應答後,即斷開連線。採用這種方式可以節省傳輸時間。

5.無狀態:HTTP協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的資訊,則它必須重傳,這樣可能導致每次連線傳送的資料量增大。另一方面,在伺服器不需要先前資訊時它的應答就較快。

三、URL詳解

HTTP使用統一資源識別符號(Uniform Resource Identifiers, URI)來傳輸資料和建立連線。URL是一種特殊型別的URI,包含了用於查詢某個資源的足夠的資訊

URL,全稱是UniformResourceLocator, 中文叫統一資源定位符,是網際網路上用來標識某一處資源的地址。以下面這個URL為例,介紹下普通URL的各部分組成:

從上面的URL可以看出,一個完整的URL包括以下幾部分: 1.協議部分:該URL的協議部分為“http:”,這代表網頁使用的是HTTP協議。在Internet中可以使用多種協議,如HTTP,FTP等等本例中使用的是HTTP協議。在”HTTP”後面的“//”為分隔符

2.域名部分:該URL的域名部分為“”。一個URL中,也可以使用IP地址作為域名使用

3.埠部分:跟在域名後面的是埠,域名和埠之間使用“:”作為分隔符。埠不是一個URL必須的部分,如果省略埠部分,將採用預設埠

4.虛擬目錄部分:從域名後的第一個“/”開始到最後一個“/”為止,是虛擬目錄部分。虛擬目錄也不是一個URL必須的部分。本例中的虛擬目錄是“/news/”

5.檔名部分:從域名後的最後一個“/”開始到“?”為止,是檔名部分,如果沒有“?”,則是從域名後的最後一個“/”開始到“#”為止,是檔案部分,如果沒有“?”和“#”,那麼從域名後的最後一個“/”開始到結束,都是檔名部分。本例中的檔名是“index.asp”。檔名部分也不是一個URL必須的部分,如果省略該部分,則使用預設的檔名

6.錨部分:從“#”開始到最後,都是錨部分。本例中的錨部分是“name”。錨部分也不是一個URL必須的部分

7.引數部分:從“?”開始到“#”為止之間的部分為引數部分,又稱搜尋部分、查詢部分。本例中的引數部分為“boardID=5&ID=24618&page=1”。引數可以允許有多個引數,引數與引數之間用“&”作為分隔符。

四、如何測試http介面請求

介面測試一般是使用介面測試工具進行測試的,主要使用的介面測試工具有:apipost、jmeter等



開啟介面測試工具apipost,選擇請求方法,輸入url地址和引數,點選發生就可以對介面進行測試了。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69986023/viewspace-2746324/,如需轉載,請註明出處,否則將追究法律責任。

相關文章