軟體測試必須掌握的 http 網路協議知識
##一、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的各部分組成:
http://www.baidu.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name
從上面的URL可以看出,一個完整的URL包括以下幾部分: 1.協議部分:該URL的協議部分為“http:”,這代表網頁使用的是HTTP協議。在Internet中可以使用多種協議,如HTTP,FTP等等本例中使用的是HTTP協議。在”HTTP”後面的“//”為分隔符
2.域名部分:該URL的域名部分為“www.baidu.com”。一個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地址和引數,點選發生就可以對介面進行測試了。
相關文章
- 軟體測試必須掌握的http網路協議知識HTTP協議
- 軟體測試——網路協議知識 (二)協議
- 軟體測試——網路協議知識(二)協議
- 前端必須懂的計算機網路知識—(HTTP)前端計算機網路HTTP
- 網路安全網路協議知識點中,http協議是什麼?協議HTTP
- 前端必須掌握的知識點前端
- 你必須要知道的HTTP協議原理HTTP協議
- Http協議常用知識HTTP協議
- JavaScript必須要掌握的知識-作用域JavaScript
- 軟體測試培訓分享:做軟體測試需要掌握資料庫的知識嗎?資料庫
- 關於Http協議,你必須要知道的HTTP協議
- 網路協議基礎知識協議
- 外貿小白必須掌握的基礎知識
- Oracle10g rac 必須掌握的知識Oracle
- HTTP協議知識總結HTTP協議
- HTTP協議_入門知識HTTP協議
- HTTP協議冷知識大全HTTP協議
- 軟體測試入門必備知識知多少?
- Android 之 Notification 必須掌握知識點Android
- 告軟體測試初學者:入門需掌握的知識點
- 前端面試必懂的 - http 網路知識前端面試HTTP
- JavaScript大師必須掌握的12個知識點JavaScript
- 必須掌握的Linux使用者組知識Linux
- PHP初學者必須掌握的10個知識點PHP
- Oracle10g rac 必須掌握的知識二Oracle
- 如何使用AFL-FUZZ進行網路協議軟體的模糊測試協議
- HTTP協議知識點總結HTTP協議
- Fiddler抓包工具入門:軟體測試員必知的抓取https協議的方法HTTP協議
- 軟體測試學習教程—軟體測試基本知識
- 前端必須懂的計算機網路知識—(TCP)前端計算機網路TCP
- 用於網路協議測試的工具協議
- JavaScript必須要掌握的知識-作用域編寫提升JavaScript
- JVM-Java工程師必須掌握的知識點JVMJava工程師
- 關於資料庫索引,必須掌握的知識點資料庫索引
- 程式設計師必須掌握的五個seo知識程式設計師
- 談談網路協議 – 基礎知識協議
- 軟體測試基礎知識
- HTTP協議中你必須知道的三種資料格式HTTP協議