乾貨|介面測試必備技能-常見介面協議解析
服務與服務之間傳遞資料包,往往會因為不同的應用場景,使用不同的通訊協議進行傳遞。比如網站的訪問,常常會使用 HTTP 協議進行傳遞,檔案傳輸使用 FTP,郵件傳遞使用 SMTP。上述的三種類型的協議都處於網路模型中的應用層。除了應用層的常用協議之外,對於傳輸層的 TCP、UDP 協議,以及 Restful 架構風格、RPC 協議等等基礎網路知識要有一定的瞭解和認知。
網路協議介紹
在瞭解具體的協議之前,需要先了解 OSI 七層模型、TCP/IP 四層模型、五層體系結構這三種不同的網路模型。
網路協議模型對比圖:
- OSI 參考模型是一個在制定協調程序間通訊標準時所使用的概念性框架,它並不是一個標準。
- TCP/IP 四層模型是網際網路的基礎通訊架構。常視為是簡化的七層 OSI 模型。
- 五層協議是 OSI 和 TCP/IP 的綜合,實際應用還是 TCP/IP 的四層結構。
- TCP/IP 協議棧是對應 TCP/IP 四層模型所使用的具體的網路協議
TCP協議
TCP 協議是在傳輸層中,一種面向連線的、可靠的、基於位元組流的傳輸層通訊協議。TCP 協議的工作方式為在建立連線的時候需要進行“三次握手”,終止連線時需要進行“四次揮手”。“三次握手”和“四次揮手”是 TCP 協議的重要知識點,在後面的章節會通過實戰和理論結合,具體介紹這一重要的知識點。
TCP 協議的面向連線、錯誤重傳、擁塞控制等特性,適用於可靠性高的場景,比如涉及使用者資訊的資料傳輸。
UDP協議
UDP 協議一旦把應用程式發給網路層的資料傳送出去,就不保留資料備份。它僅在 IP 資料包的頭部加入複用和資料校驗欄位。所以 UDP 常常被認為是不可靠的資料包協議。
UDP 協議的不需要提前建立連線、實現簡單的特性,非常適用於實時性高的場景,比如流媒體、線上遊戲等。
HTTP協議
HTTP 協議是介面測試中最常見的協議,用於分散式、協作式和超媒體資訊系統的應用層協議。HTTP 是全球資訊網的資料通訊的基礎。客戶端向服務端傳送 HTTP 請求,服務端則會在響應中返回所請求的資料。在測試過程中,常常需要校驗請求和響應結果,所以瞭解 HTTP 協議,對於介面測試來說,是重中之重。
在後面章節將會具體介紹 HTTP、HTTPS 協議的區別,以及 HTTP 協議的基礎知識資訊。
RESTful架構
起源
Roy Thomas Fielding 博士於 2000 年在他的博士論文中提出來的一種全球資訊網軟體架構風格。其目的是為了便於不同的軟體在網路中傳遞資訊。RESTful 是基於 HTTP 協議之上制定的一種資源請求、操作的風格,用一句話來概括就是使用 URL 去定位資源,使用 HTTP 動詞描述操作。
HTTP 請求方法在 RESTful api 中的典型應用:
注意: 不同公司在使用 RESTful 架構風格的時候存在部分差別。
RPC協議
目前在行業內常用的 RPC 協議主要如下:
- Dubbo:
- Java 基礎之上的高效能 RPC 協議
- gRPC:
- 高效能通用 RPC 框架,基於 Protocol Buffers
- PB 是一個語言中立、平臺中立的資料序列化框架。
- Thrift:
- 與 gRPC 類似的多語言 RPC 框架。
常見介面協議解析暫時就講這些哈,如果大家有其他想了解的知識點也可以在下方留言哦!小編儘量滿足大家的需求哈~