<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

什么是HTTP協議?什么是RPC協議?二者如何選擇使用?

kae1_cdebyte ? 來源:億佰特物聯網應用專家 ? 2023-08-11 09:25 ? 次閱讀

為什么有了HTTP,還需要RPC協議呢?在進行說明之前,首先我們需要了解什么是HTTP協議,什么是RPC協議。

01什么是HTTP協議?

HTTP是一種廣泛使用的網絡傳輸協議,它定義了客戶端(如瀏覽器, 手機用戶APP等)和服務器(網站等提供服務的,服務端)之間的通信格式和通信方法,它是基于請求—響應這樣一種通信模型,即服務端根據請求返回一個響應,在請求和響應中,都包含了兩端(客戶端和服務端)之間進行交互的一些信息,如方法、頭部、正文等。

wKgZomTVjh6AY7K9AAAIzTOV66Q161.png

圖1 HTTP交互基本流程圖

HTTP具有很多優點,它支持多種數據格式和編碼方式,可以實現跨平臺和跨語言的通信,通信簡單、靈活、易于擴展。但是同時它也有一些缺點:

(1)HTTP是無狀態的,每次請求都需要重新建立連接,這會增加網絡開銷和延遲。

(2)數據傳輸是基于文本的,這會導致數據量較大,解析效率較低。

(3)安全性較差,因此容易受到中間人攻擊、重放攻擊等。

(4)語義較弱,HTTP只能表達基本的增刪改查操作,不能滿足復雜的業務邏輯。

02什么是RPC協議?

RPC即Remote Procedure Call(遠程程序調用),它是一種遠程過程調用協議,它允許客戶端像調用本地函數一樣調用遠程服務器上的函數。

wKgaomTVjh6ABmIgAAEX_MmADKY665.png

圖2 RPC協議交互流程

RPC的優點是高效、強大、易于使用,但是它也有一些缺點,比如:

(1)與HTTP相反,RPC是有狀態的,需要維護客戶端和服務器之間的連接狀態,這會增加系統的復雜度和資源消耗。

(2)RPC的數據傳輸是基于二進制的,這會導致數據不易閱讀和調試。

(3)RPC的兼容性較差,不同的RPC框架之間可能存在協議和接口的不一致性。

(4)RPC的可擴展性較差,難以支持動態服務發現和負載均衡等功能。

03二者的選擇使用

基于TCP建立的HTTP和各類RPC協議,只是定義了不同消息格式的應用層協議。HTTP協議是超文本傳輸協議,而RPC本身并不是一個具體的協議,而是一種調用方式。

wKgaomTVjh6ADxuuAACs9tCgRvs049.png

雖然HTTP現在叫超文本協議,支持音頻視頻,但HTTP設計初主要是用做展示網頁文本,所以它傳輸的內容以字符串為主,內容存在非常多的冗余。而RPC協議定制化程度更高,可以采用體積更小的protobuf或其他序列化協議去保存結構體數據,同時也不需要像HTTP那樣考慮各種瀏覽器行為,性能更好。因此在公司內部微服務中拋棄HTTP,轉而使用RPC協議。雖然后來HTTP得到了很大的改進,但由于很多公司內部已經用了多年的RPC協議,基于歷史原因,一般沒有選擇更換成HTTP。

在實際運用中,不論是HTTP還是RPC,它們都有各自的優缺點,沒有絕對的好壞之分。針對不同的使用場景選擇合適的協議。比如:

(1)在微服務架構中,服務之間需要頻繁地進行內部調用,RPC可以提供更高的性能和可靠性。

(2)在分布式計算中,需要將大量的計算任務分發到不同的節點上執行,RPC可以實現更靈活的負載均衡和容錯機制。

(3)而在實時通信中,需要實現低延遲和高并發的數據交換,RPC可以支持多種傳輸協議和通信模式。

而假如你需要實現跨平臺和跨語言的通信,或者需要支持多種數據格式和編碼方式,或者需要利用現有的HTTP基礎設施和工具,可以選擇HTTP協議。

當然這樣不是絕對固定的組合,也可以結合兩個協議來實現更好的網絡,例如:

(1)我們可以在HTTP協議上封裝RPC協議,使得RPC請求可以通過HTTP代理或者網關來轉發和處理。

(2)可以在RPC協議上使用HTTP協議作為傳輸層,使得RPC請求可以利用HTTP的特性來實現緩存、壓縮、加密等功能。

所以總的來說,RPC的出現是為了應對HTTP協議滿足不了的對性能有所要求的網絡場景。它們并不是互斥的,而是可以根據不同的場景和需求進行選擇和組合的。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 接口
    +關注

    關注

    33

    文章

    7859

    瀏覽量

    149007
  • 服務器
    +關注

    關注

    12

    文章

    8271

    瀏覽量

    83062
  • HTTP
    +關注

    關注

    0

    文章

    467

    瀏覽量

    30405
  • TCP
    TCP
    +關注

    關注

    8

    文章

    1282

    瀏覽量

    78445
  • RPC
    RPC
    +關注

    關注

    0

    文章

    102

    瀏覽量

    11445

原文標題:為什么有了HTTP,還需要RPC協議?

文章出處:【微信號:cdebyte,微信公眾號:億佰特物聯網應用專家】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    通信網絡技術:RPC服務和HTTP服務的區別分析

    ! 本文簡單地介紹一下兩種形式的 C/S 架構,先說一下他們最本質的區別,就是 RPC 主要是基于 TCP/IP 協議的,而 HTTP 服務主要是基于 HTTP
    的頭像 發表于 11-26 13:52 ?2560次閱讀

    什么是HTTP協議?HTTP協議的基本特點和發展歷程

    上期文章小編給大家介紹了一些關于MQTT協議的基礎知識,今天我們來了解另一個應用層協議——HTTP協議。
    發表于 08-04 09:52 ?661次閱讀
    什么是<b class='flag-5'>HTTP</b><b class='flag-5'>協議</b>?<b class='flag-5'>HTTP</b><b class='flag-5'>協議</b>的基本特點和發展歷程

    為什么有了HTTP,還需要RPC協議?

    為什么有了HTTP,還需要RPC協議呢?在進行說明之前,首先我們需要了解什么是HTTP協議,什么是RPC
    的頭像 發表于 08-14 10:05 ?703次閱讀
    為什么有了<b class='flag-5'>HTTP</b>,還需要<b class='flag-5'>RPC</b><b class='flag-5'>協議</b>?

    HTTP協議是什么

    前言HTTP協議(HyperText Transfer Protocol,超文本傳輸協議)是因特網上應用最為廣泛的種網絡傳輸協議,所有的WWW文件都必須遵守這個標準。
    發表于 08-03 06:12

    什么是Http協議?

    文章目錄**1、說一下什么是Http協議?****2、什么是Http無狀態協議?怎么解決Http無狀態
    發表于 12-22 06:27

    HTTP,HTTP協議的作用是什么?

    HTTP,HTTP協議的作用是什么? HTTP:Hypertext Transfer Protocol 超文本傳輸協議
    發表于 03-22 10:45 ?2.5w次閱讀

    HTTP協議培訓教程資料

    HTTP協議培訓教程資料 協議基礎  HTTP(HyperText Transfer Protocol)是超文本傳輸協議的縮寫,它用于傳送
    發表于 03-22 10:47 ?551次閱讀

    HTTP協議的使用方式和設計原理講解

    HTTP 協議在網絡知識中占據了重要的地位,HTTP 協議最基礎的就是請求和響應的報文,而報文又是由報文頭(Header)和實體組成。大多數 Htt
    發表于 06-28 09:08 ?4002次閱讀
    <b class='flag-5'>HTTP</b><b class='flag-5'>協議</b>的使用方式和設計原理講解

    什么是RPC?為什么需要RPC?

    首先要明確一點:RPC可以用HTTP協議實現,并且用HTTP是建立在 TCP 之上最廣泛使用的 RPC,但是互聯網公司往往用自己的私有
    的頭像 發表于 04-16 12:49 ?1.4w次閱讀
    什么是<b class='flag-5'>RPC</b>?為什么需要<b class='flag-5'>RPC</b>?

    深入理解RPC自定義網絡協議

    只要涉及到網絡通信,必然涉及到網絡協議,應用層也是一樣。在應用層最標準和常用的就是HTTP協議。但在很多性能要求較高的場景各大企業內部也會自定義的 RPC
    的頭像 發表于 06-12 15:00 ?2206次閱讀

    HTTPRPC

    TCP是傳輸層的協議,而基于TCP造出來的HTTP和各類RPC協議,它們都只是定義了不同消息格式的應用層協議而已。
    的頭像 發表于 11-23 08:54 ?677次閱讀
    <b class='flag-5'>HTTP</b>和<b class='flag-5'>RPC</b>

    有了HTTP,為什么還要RPC?

    實際應用過程中,五層協議結構里面是沒有表示層和會話層的。應該說它們和應用層合并了。我們應該將重點放在應用層和傳輸層這兩個層面。因為HTTP是應用層協議,而TCP是傳輸層協議。好,知道了
    的頭像 發表于 04-27 14:29 ?508次閱讀
    有了<b class='flag-5'>HTTP</b>,為什么還要<b class='flag-5'>RPC</b>?

    RPC接口與HTTP接口哪一個更好?

    HTTP接口和RPC接口都是生產上常用的接口,顧名思義,HTTP接口使用基于HTTP協議的URL傳參調用,而
    發表于 06-13 09:18 ?750次閱讀
    <b class='flag-5'>RPC</b>接口與<b class='flag-5'>HTTP</b>接口哪一個更好?

    基于Client/Server架構的HTTP接口和RPC接口

    HTTP接口和RPC接口都是生產上常用的接口,顧名思義,HTTP接口使用基于HTTP協議的URL傳參調用,而
    發表于 06-13 09:18 ?481次閱讀
    基于Client/Server架構的<b class='flag-5'>HTTP</b>接口和<b class='flag-5'>RPC</b>接口

    RPC接口和HTTP接口的區別與聯系

    ? HTTP服務 RPC接口和HTTP接口的區別與聯系 參考文獻 ? HTTP接口和RPC接口都是生產上常用的接口,顧名思義,
    的頭像 發表于 06-17 14:54 ?1262次閱讀
    <b class='flag-5'>RPC</b>接口和<b class='flag-5'>HTTP</b>接口的區別與聯系
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>