『面試問答』:HTTP和RPC的差別是什麼?

2023.10.24

『面試問答』:HTTP和RPC的差別是什麼?


HTTP協定(Hyper Text Transfer Protocol),又稱為超文本傳輸協定。是一種用於在網頁瀏覽器和網頁伺服器之間交換資料的應用層協定。

面試官:請說一下,HTTP和RPC的差別是什麼?

HTTP協定(Hyper Text Transfer Protocol),又稱為超文本傳輸協定。是一種用於在網頁瀏覽器和網頁伺服器之間交換資料的應用層協定。透過HTTP,網頁瀏覽器可以向Web伺服器發送請求並取得回應,從而實現網路頁面的存取和傳輸。HTTP使用TCP作為傳輸層協議,並採用請求-回應模型來進行通訊。

圖片圖片

圖片圖片

RPC(Remote Procedure Call),又稱為遠端過程調用,它允許客戶端在不知道調用細節的情況下,調用存在於遠端電腦上的某個對象,就像調用本機應用程式中的物件一樣。RPC的呼叫協定通常包含傳輸協定和序列化協定。

圖片圖片

圖片圖片

RPC並不是一個具體的協議,而是一種呼叫方式,它並沒有具體實現,只要按照RPC 通訊協議規範實現的框架,都屬於RPC,例如Dubbo、gRPC 等。

圖片圖片

整體來看,HTTP和RPC的主要差異5點:

1.基於的通訊協定不同,HTTP只能基於HTTP協議,而RPC可以基於HTTP、TCP和UDP協定。

圖片圖片

2.調用方式不同,HTTP 介面透過URL 調用,RPC 介面透過函數調用進行調用。

3.使用場景上不同,HTTP主要用於B/S 架構,是萬維網資料通訊的基礎,服務在網頁端和服務端的資料傳輸上 。而RPC 更多用於C/S 架構,多用於分​​散式系統內部叢集裡,例如雲端運算、微服務架構、分散式資料庫等,它可以在不同的服務之間進行遠端調用,從而實現分散式系統的協作。

圖片圖片

4.傳輸效率上,RPC使用自訂的TCP協議,請求封包體積更小,可以很好地減少封包體積,提高傳輸效率。而HTTP請求中會包含許多無用的內容。

圖片圖片

5.效能上,RPC協定通常使用二進位編碼來傳輸數據,相對於HTTP協定的文字傳輸,RPC具有更高的效能和效率。RPC協定通常採用高效的序列化和反序列化技術,減少了資料傳輸的大小和開銷,提高了通訊的速度和回應時間。

圖片圖片

圖片圖片