在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

kae1_cdebyte ? 來(lái)源:億佰特物聯(lián)網(wǎng)應(yīng)用專家 ? 2023-08-11 09:25 ? 次閱讀

為什么有了HTTP,還需要RPC協(xié)議呢?在進(jìn)行說(shuō)明之前,首先我們需要了解什么是HTTP協(xié)議,什么是RPC協(xié)議。

01什么是HTTP協(xié)議?

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

wKgZomTVjh6AY7K9AAAIzTOV66Q161.png

圖1 HTTP交互基本流程圖

HTTP具有很多優(yōu)點(diǎn),它支持多種數(shù)據(jù)格式和編碼方式,可以實(shí)現(xiàn)跨平臺(tái)和跨語(yǔ)言的通信,通信簡(jiǎn)單、靈活、易于擴(kuò)展。但是同時(shí)它也有一些缺點(diǎn):

(1)HTTP是無(wú)狀態(tài)的,每次請(qǐng)求都需要重新建立連接,這會(huì)增加網(wǎng)絡(luò)開銷和延遲。

(2)數(shù)據(jù)傳輸是基于文本的,這會(huì)導(dǎo)致數(shù)據(jù)量較大,解析效率較低。

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

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

02什么是RPC協(xié)議?

RPC即Remote Procedure Call(遠(yuǎn)程程序調(diào)用),它是一種遠(yuǎn)程過(guò)程調(diào)用協(xié)議,它允許客戶端像調(diào)用本地函數(shù)一樣調(diào)用遠(yuǎn)程服務(wù)器上的函數(shù)。

wKgaomTVjh6ABmIgAAEX_MmADKY665.png

圖2 RPC協(xié)議交互流程

RPC的優(yōu)點(diǎn)是高效、強(qiáng)大、易于使用,但是它也有一些缺點(diǎn),比如:

(1)與HTTP相反,RPC是有狀態(tài)的,需要維護(hù)客戶端和服務(wù)器之間的連接狀態(tài),這會(huì)增加系統(tǒng)的復(fù)雜度和資源消耗。

(2)RPC的數(shù)據(jù)傳輸是基于二進(jìn)制的,這會(huì)導(dǎo)致數(shù)據(jù)不易閱讀和調(diào)試。

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

(4)RPC的可擴(kuò)展性較差,難以支持動(dòng)態(tài)服務(wù)發(fā)現(xiàn)和負(fù)載均衡等功能。

03二者的選擇使用

基于TCP建立的HTTP和各類RPC協(xié)議,只是定義了不同消息格式的應(yīng)用層協(xié)議。HTTP協(xié)議是超文本傳輸協(xié)議,而RPC本身并不是一個(gè)具體的協(xié)議,而是一種調(diào)用方式。

wKgaomTVjh6ADxuuAACs9tCgRvs049.png

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

在實(shí)際運(yùn)用中,不論是HTTP還是RPC,它們都有各自的優(yōu)缺點(diǎn),沒(méi)有絕對(duì)的好壞之分。針對(duì)不同的使用場(chǎng)景選擇合適的協(xié)議。比如:

(1)在微服務(wù)架構(gòu)中,服務(wù)之間需要頻繁地進(jìn)行內(nèi)部調(diào)用,RPC可以提供更高的性能和可靠性。

(2)在分布式計(jì)算中,需要將大量的計(jì)算任務(wù)分發(fā)到不同的節(jié)點(diǎn)上執(zhí)行,RPC可以實(shí)現(xiàn)更靈活的負(fù)載均衡和容錯(cuò)機(jī)制。

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

而假如你需要實(shí)現(xiàn)跨平臺(tái)和跨語(yǔ)言的通信,或者需要支持多種數(shù)據(jù)格式和編碼方式,或者需要利用現(xiàn)有的HTTP基礎(chǔ)設(shè)施和工具,可以選擇HTTP協(xié)議。

當(dāng)然這樣不是絕對(duì)固定的組合,也可以結(jié)合兩個(gè)協(xié)議來(lái)實(shí)現(xiàn)更好的網(wǎng)絡(luò),例如:

(1)我們可以在HTTP協(xié)議上封裝RPC協(xié)議,使得RPC請(qǐng)求可以通過(guò)HTTP代理或者網(wǎng)關(guān)來(lái)轉(zhuǎn)發(fā)和處理。

(2)可以在RPC協(xié)議上使用HTTP協(xié)議作為傳輸層,使得RPC請(qǐng)求可以利用HTTP的特性來(lái)實(shí)現(xiàn)緩存、壓縮、加密等功能。

所以總的來(lái)說(shuō),RPC的出現(xiàn)是為了應(yīng)對(duì)HTTP協(xié)議滿足不了的對(duì)性能有所要求的網(wǎng)絡(luò)場(chǎng)景。它們并不是互斥的,而是可以根據(jù)不同的場(chǎng)景和需求進(jìn)行選擇和組合的。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8598

    瀏覽量

    151157
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    9160

    瀏覽量

    85421
  • HTTP
    +關(guān)注

    關(guān)注

    0

    文章

    505

    瀏覽量

    31227
  • TCP
    TCP
    +關(guān)注

    關(guān)注

    8

    文章

    1353

    瀏覽量

    79074
  • RPC
    RPC
    +關(guān)注

    關(guān)注

    0

    文章

    111

    瀏覽量

    11536

原文標(biāo)題:為什么有了HTTP,還需要RPC協(xié)議?

文章出處:【微信號(hào):cdebyte,微信公眾號(hào):億佰特物聯(lián)網(wǎng)應(yīng)用專家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    通信網(wǎng)絡(luò)技術(shù):RPC服務(wù)和HTTP服務(wù)的區(qū)別分析

    ! 本文簡(jiǎn)單地介紹一下兩種形式的 C/S 架構(gòu),先說(shuō)一下他們最本質(zhì)的區(qū)別,就是 RPC 主要是基于 TCP/IP 協(xié)議的,而 HTTP 服務(wù)主要是基于 HTTP
    的頭像 發(fā)表于 11-26 13:52 ?2727次閱讀

    什么是HTTP協(xié)議HTTP協(xié)議的基本特點(diǎn)和發(fā)展歷程

    上期文章小編給大家介紹了一些關(guān)于MQTT協(xié)議的基礎(chǔ)知識(shí),今天我們來(lái)了解另一個(gè)應(yīng)用層協(xié)議——HTTP協(xié)議
    發(fā)表于 08-04 09:52 ?1633次閱讀
    什么是<b class='flag-5'>HTTP</b><b class='flag-5'>協(xié)議</b>?<b class='flag-5'>HTTP</b><b class='flag-5'>協(xié)議</b>的基本特點(diǎn)和發(fā)展歷程

    為什么有了HTTP,還需要RPC協(xié)議

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

    什么是Http協(xié)議

    文章目錄**1、說(shuō)一下什么是Http協(xié)議?****2、什么是Http無(wú)狀態(tài)協(xié)議?怎么解決Http無(wú)狀態(tài)協(xié)
    發(fā)表于 12-22 06:27

    HTTP,HTTP協(xié)議的作用是什么?

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

    HTTP協(xié)議培訓(xùn)教程資料

    HTTP協(xié)議培訓(xùn)教程資料 協(xié)議基礎(chǔ)  HTTP(HyperText Transfer Protocol)是超文本傳輸協(xié)議的縮寫,它用于傳送
    發(fā)表于 03-22 10:47 ?587次閱讀

    什么是RPC?為什么需要RPC

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

    深入理解RPC自定義網(wǎng)絡(luò)協(xié)議

    只要涉及到網(wǎng)絡(luò)通信,必然涉及到網(wǎng)絡(luò)協(xié)議,應(yīng)用層也是一樣。在應(yīng)用層最標(biāo)準(zhǔn)和常用的就是HTTP協(xié)議。但在很多性能要求較高的場(chǎng)景各大企業(yè)內(nèi)部也會(huì)自定義的 RPC
    的頭像 發(fā)表于 06-12 15:00 ?2576次閱讀

    HTTPRPC

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

    大話HTTP協(xié)議前世今生

    HTTP 全稱 Hypertext Transfer Protocol,中文是超文本傳輸協(xié)議。網(wǎng)上講 HTTP 協(xié)議的資料可以說(shuō)是五花八門,但大多數(shù)都在羅列
    的頭像 發(fā)表于 02-07 16:03 ?705次閱讀

    有了HTTP,為什么還要RPC

    實(shí)際應(yīng)用過(guò)程中,五層協(xié)議結(jié)構(gòu)里面是沒(méi)有表示層和會(huì)話層的。應(yīng)該說(shuō)它們和應(yīng)用層合并了。我們應(yīng)該將重點(diǎn)放在應(yīng)用層和傳輸層這兩個(gè)層面。因?yàn)?b class='flag-5'>HTTP是應(yīng)用層協(xié)議,而TCP是傳輸層協(xié)議。好,知道了
    的頭像 發(fā)表于 04-27 14:29 ?663次閱讀
    有了<b class='flag-5'>HTTP</b>,為什么還要<b class='flag-5'>RPC</b>?

    RPC接口與HTTP接口哪一個(gè)更好?

    HTTP接口和RPC接口都是生產(chǎn)上常用的接口,顧名思義,HTTP接口使用基于HTTP協(xié)議的URL傳參調(diào)用,而
    發(fā)表于 06-13 09:18 ?1316次閱讀
    <b class='flag-5'>RPC</b>接口與<b class='flag-5'>HTTP</b>接口哪一個(gè)更好?

    基于Client/Server架構(gòu)的HTTP接口和RPC接口

    HTTP接口和RPC接口都是生產(chǎn)上常用的接口,顧名思義,HTTP接口使用基于HTTP協(xié)議的URL傳參調(diào)用,而
    發(fā)表于 06-13 09:18 ?762次閱讀
    基于Client/Server架構(gòu)的<b class='flag-5'>HTTP</b>接口和<b class='flag-5'>RPC</b>接口

    RPC接口和HTTP接口的區(qū)別與聯(lián)系

    基于遠(yuǎn)程過(guò)程調(diào)用。 RPC(即Remote Procedure Call,遠(yuǎn)程過(guò)程調(diào)用)和HTTP(HyperText Transfer Protocol,超文本傳輸協(xié)議),兩前者是
    的頭像 發(fā)表于 06-17 14:54 ?1879次閱讀
    <b class='flag-5'>RPC</b>接口和<b class='flag-5'>HTTP</b>接口的區(qū)別與聯(lián)系

    關(guān)于TCP、HTTP的知識(shí)科普

    要說(shuō)http就繞不開tcp,TCP協(xié)議對(duì)應(yīng)于傳輸層,而HTTP協(xié)議對(duì)應(yīng)于應(yīng)用層,從本質(zhì)上來(lái)說(shuō),二者沒(méi)有可比性。但是,
    的頭像 發(fā)表于 12-21 09:31 ?1055次閱讀
    關(guān)于TCP、<b class='flag-5'>HTTP</b>的知識(shí)科普
    主站蜘蛛池模板: www.黄视频| 性生生活三级视频在线观看| 中文字幕一区二区三区精品| 亚洲最大成人| 久久久免费视频观看| 日日做夜夜做| 男女做性无遮挡免费视频| 日本三级电影在线观看| 午夜综合网| 亚洲最新| 在线天堂中文新版有限公司| 欧美性一区二区三区| 天天做天天玩天天爽天天| 4438x色| 日本黄色视屏| 国模网站| 色一情一乱一乱91av| 日本亚洲卡一卡2卡二卡三卡四卡| 月夜免费观看高清在线完整| 久久99免费| 国产精品波多野结衣| 亚洲аv电影天堂网| 多男一女一级淫片免费播放口| 国产jlzzjlzz视频免费| 天天做人人爱夜夜爽2020毛片| va天堂| 亚洲高清视频一区| 久久婷婷五综合一区二区| 久久99热精品免费观看k影院| 亚洲一区二区三区免费在线观看| 日本www网站| 日本超黄视频| 亚洲狠狠婷婷综合久久久图片| 成人18视频拍拍拍拍拍拍| 免费看一级片| 久色中文| 人人插人人艹| 九九热免费观看| 四虎影院一级片| 成年片免费网址网站| 亚洲欧美视频一区二区|