国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

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

Restful 和 RPC 是什么關(guān)系與區(qū)別

lhl545545 ? 來源:電子發(fā)燒友網(wǎng) ? 2018-02-07 15:35 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Restful 和 RPC 是什么關(guān)系

這兩個(gè)不是互斥的,HTTP是不是RPC完全取決于client的具體形式。傳統(tǒng)的RPC一般是基于二進(jìn)制協(xié)議的,client發(fā)個(gè)二進(jìn)制包過來(然后阻塞),server處理完回復(fù)一個(gè)包,client收到后醒來。在二進(jìn)制協(xié)議中一般可以在包中加個(gè)id來指明回復(fù)和請求的對應(yīng)關(guān)系,這樣我們就能在一個(gè)tcp連接上同時(shí)發(fā)起多個(gè)請求和回復(fù)。HTTP這種文本協(xié)議也可以加id,但由于一些原因(Content-Length可能缺失),即使加了id也做不到一個(gè)連接上同時(shí)傳多個(gè)HTTP消息,所以HTTP協(xié)議一般會(huì)和server保持多個(gè)連接,每個(gè)連接上同時(shí)最多只有一個(gè)HTTP消息。此種”連接池“方式即為HTTP中的”Keep-alive“。所以即使在HTTP上(或任何協(xié)議上),我們?nèi)匀豢梢宰龅礁咝У匕l(fā)送一個(gè)請求過去,阻塞,等待server處理完后,再醒來。這不就是RPC么。所以這兒的選擇更多是平衡功能和性能。一般來說,面向終端用戶的盡量用Restful HTTP。原因是認(rèn)知廣,直觀,編程語言都支持HTTP(包括shell,這樣調(diào)試起來方便),性能不是那么重要,方便用戶share鏈接。而面向內(nèi)部系統(tǒng)的話如果機(jī)器不多也可以考慮用Restful HTTP,如果機(jī)器很多還是盡量用二進(jìn)制的RPC吧,畢竟性能差距還是很大的。

 Restful 和 RPC 是什么關(guān)系與區(qū)別

restful架構(gòu)與rpc區(qū)別

RPC

RPC 即遠(yuǎn)程過程調(diào)用, 很簡單的概念, 像調(diào)用本地服務(wù)(方法)一樣調(diào)用服務(wù)器的服務(wù)(方法)。

通常的實(shí)現(xiàn)有 XML-RPC , JSON-RPC , 通信方式基本相同, 所不同的只是傳輸數(shù)據(jù)的格式。

(如果你已經(jīng)習(xí)慣于XML繁重的尖括號,你不妨可以嘗試下更加輕型,高效,傳輸效率高的 JSON.)

一個(gè)簡單的通信過程通常為:

Request

<?xml version=“1.0”?>

member.get_username_by_id

Response

<?xml version=“1.0”?>

Zhu Tao

向服務(wù)器發(fā)送一個(gè)過程調(diào)用的方法及其參數(shù), 得到服務(wù)器返回的方法執(zhí)行的結(jié)果。

REST

REST 不是一種協(xié)議,它是一種架構(gòu), 一種 Web Service 能夠如果滿足 REST 的幾個(gè)條件, 通常就稱這個(gè)系統(tǒng)是 Restful 的。

這里提到的條件包括:

C/S結(jié)構(gòu) (這是Internet服務(wù)的一個(gè)基本特征)

無狀態(tài) (很熟悉吧,呵呵)

可以cache (想起了瀏覽器?)

分層系統(tǒng) (想起了無數(shù)的架構(gòu)?)

統(tǒng)一的接口 (如果這是可能的,程序員有福了, :D)

code on demand(可選, 其實(shí)是一種擴(kuò)展性的要求)

看了這幾個(gè)特征后,你想起了什么?

你可能會(huì)破口而出: HTTP.

我答: You got it!

HTTP是WWW的最核心的協(xié)議, 它將簡單的分布于世界各個(gè)角落的資源都統(tǒng)一起來, 統(tǒng)一的地址, 簡單的方法, 和一定數(shù)量的表達(dá)方式。(你可能對這三點(diǎn)描述很模糊,請go ahead)。

REST 的三個(gè)要素是 唯一的資源標(biāo)識, 簡單的方法 (此處的方法是個(gè)抽象的概念), 一定的表達(dá)方式。

REST 是以 資源 為中心, 名詞即資源的地址, 動(dòng)詞即施加于名詞上的一些有限操作, 表達(dá)是對各種資源形態(tài)的抽象。

以HTTP為例, 名詞即為URI(統(tǒng)一資源標(biāo)識), 動(dòng)詞包括POST, GET, PUT, DELETE等(還有其它不常用的2個(gè),所以 整個(gè)動(dòng)詞集合是有限的), 資源的形態(tài)(如text, html, image, pdf等)

Restful 和 RPC 是什么關(guān)系與區(qū)別

RPC與REST的區(qū)別

如果你想只記住一點(diǎn),那么就請記住 RPC是以動(dòng)詞為中心的, REST是以名詞為中心的, 此處的 動(dòng)詞指的是一些方法, 名詞是指資源。

你會(huì)發(fā)現(xiàn),以動(dòng)詞為中心,意味著,當(dāng)你要需要加入新功能時(shí),你必須要添加更多的動(dòng)詞, 這時(shí)候服務(wù)器端需要實(shí)現(xiàn) 相應(yīng)的動(dòng)詞(方法), 客戶端需要知道這個(gè)新的動(dòng)詞并進(jìn)行調(diào)用。

而以名詞為中心, 假使我請求的是 hostname/friends/, 無論這個(gè)URI對應(yīng)的服務(wù)怎么變化,客戶端是無需 關(guān)注和更新的,而這種變化對客戶端也是透明的。

至于其它的區(qū)別,如對實(shí)現(xiàn)語言的依賴, 耦合性等,這些都是上面提到的這個(gè)根本區(qū)別所衍生的。

讓我們回到引入部分的2個(gè)問題。 當(dāng)你每天使用HTTP沖浪時(shí),你都在使用 REST 與遠(yuǎn)程的服務(wù)器進(jìn)行親密接觸。 當(dāng)你使用Gtalk和同事朋友溝通時(shí),你則是在享受著 RPC 的便利.

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

    關(guān)注

    0

    文章

    114

    瀏覽量

    12259
  • Restful
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

    3844
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    碼神之路Netty-從零實(shí)現(xiàn)RPC框架課分享

    面向未來的分布式基石:Netty 從零實(shí)現(xiàn) RPC 框架全體系實(shí)戰(zhàn) 在微服務(wù)架構(gòu)與云原生技術(shù)大行其道的今天,分布式系統(tǒng)已成為互聯(lián)網(wǎng)應(yīng)用的標(biāo)準(zhǔn)形態(tài)。而在這些龐大系統(tǒng)的底層,隱藏著一個(gè)至關(guān)重要的通信引擎
    的頭像 發(fā)表于 02-13 11:38 ?42次閱讀

    電壓、電位、電勢和電平的區(qū)別關(guān)系

    在電學(xué)領(lǐng)域中,電壓、電位、電勢和電平是幾個(gè)密切相關(guān)的概念,它們既有區(qū)別又有聯(lián)系。理解這些概念的本質(zhì)及其相互關(guān)系,對于掌握電路分析和電子技術(shù)至關(guān)重要。下面將從定義、計(jì)算方法和實(shí)際應(yīng)用等方面,詳細(xì)闡述
    的頭像 發(fā)表于 11-24 07:37 ?1034次閱讀
    電壓、電位、電勢和電平的<b class='flag-5'>區(qū)別</b>與<b class='flag-5'>關(guān)系</b>

    單片機(jī)和嵌入式,到底是什么關(guān)系

    關(guān)系:什么是單片機(jī)?什么是嵌入式?它們到底是不是一回事?先說說大家最先聽說的那個(gè)詞——單片機(jī)(MCU)。單片機(jī),全稱是MicrocontrollerUnit,顧名思
    的頭像 發(fā)表于 11-14 10:28 ?1492次閱讀
    單片機(jī)和嵌入式,到底是<b class='flag-5'>什么關(guān)系</b>?

    RESTful API設(shè)計(jì)原則: 構(gòu)建易用、可擴(kuò)展的API接口。

    一、理解REST架構(gòu)的核心約束 1.1 RESTful API的六大基本原則 Roy Fielding博士在其博士論文中定義了REST架構(gòu)的六大核心約束: 統(tǒng)一接口(Uniform
    的頭像 發(fā)表于 10-24 10:45 ?482次閱讀

    工業(yè)智能網(wǎng)關(guān)與交換機(jī)有什么關(guān)系

    工業(yè)智能網(wǎng)關(guān)與交換機(jī)在工業(yè)網(wǎng)絡(luò)中扮演不同角色,二者既存在功能差異,又在特定場景下形成互補(bǔ)關(guān)系,共同構(gòu)建高效、安全的工業(yè)通信體系。以下是具體分析: 一、功能定位差異 工業(yè)智能網(wǎng)關(guān) 核心功能 :作為工業(yè)
    的頭像 發(fā)表于 10-21 09:29 ?633次閱讀

    RESTful API設(shè)計(jì)原則: 構(gòu)建易用、可擴(kuò)展的API接口

    在當(dāng)今微服務(wù)架構(gòu)和分布式系統(tǒng)盛行的時(shí)代,RESTful API已成為系統(tǒng)間通信的核心橋梁。優(yōu)秀的API設(shè)計(jì)不僅能提升開發(fā)效率,還能顯著降低系統(tǒng)維護(hù)成本。本文將深入探討如何遵循REST
    的頭像 發(fā)表于 10-20 13:45 ?792次閱讀

    傳感器和執(zhí)行器之間有什么關(guān)系?

    傳感器和執(zhí)行器是現(xiàn)代自動(dòng)化系統(tǒng)的核心部件。傳感器負(fù)責(zé)檢測環(huán)境信息,如溫度、光照等;執(zhí)行器則根據(jù)信息執(zhí)行動(dòng)作,如啟動(dòng)電機(jī)、打開閥門等。它們之間存在著功能互補(bǔ)、協(xié)同工作、相互依存和集成發(fā)展等關(guān)系,共同推動(dòng)自動(dòng)化技術(shù)的發(fā)展。
    的頭像 發(fā)表于 09-29 11:42 ?864次閱讀

    邏輯“1”與芯片引腳的輸入電壓有什么關(guān)系

    邏輯“1”與芯片引腳的輸入電壓有什么關(guān)系
    發(fā)表于 08-26 07:24

    可配置的數(shù)據(jù)閃存大小、地址和 APROM 之間有什么關(guān)系?

    可配置的數(shù)據(jù)閃存大小、地址和 APROM 之間有什么關(guān)系
    發(fā)表于 08-26 06:58

    請問可配置的數(shù)據(jù)閃存大小、地址和 APROM 之間有什么關(guān)系?

    可配置的數(shù)據(jù)閃存大小、地址和 APROM 之間有什么關(guān)系?
    發(fā)表于 08-21 07:10

    Jtti.ccVPS和IP的關(guān)系是什么?一文講清服務(wù)器背后的網(wǎng)絡(luò)邏輯

    不少朋友在使用 VPS 搭建網(wǎng)站、做代理或遠(yuǎn)程桌面時(shí),經(jīng)常聽到“獨(dú)立IP”、“共享IP”、“原生IP”這些詞,但到底 VPS 和 IP 是什么關(guān)系?有沒有固定綁定?怎么查?怎么換?今天小編就從
    的頭像 發(fā)表于 07-07 17:41 ?856次閱讀

    什么是STM32? STM32與ARM有什么關(guān)系? STM32能做什么?

    什么是STM32 具體用于什么方面較多?? STM32與ARM有什么關(guān)系 STM32能做什么,簡單的比如調(diào)節(jié)協(xié)議,為什么那么久的產(chǎn)品到現(xiàn)在還是主流?
    發(fā)表于 06-23 17:34

    請問cypd3125 I2C硬件地址和HPIv2 組件內(nèi)設(shè)定的slave address地址有什么關(guān)系,必須一致嗎?

    各位大俠: 請問cypd3125 I2C硬件地址和HPIv2 組件內(nèi)設(shè)定的slave address地址有什么關(guān)系,必須一致嗎?我把CYPD3125 I2C 地址通過硬件設(shè)為0x40,感覺可以找到設(shè)備,但HPIv2 通信有問題,不知道兩個(gè)地址有什么關(guān)系?哪位幫忙指點(diǎn)一下,
    發(fā)表于 06-03 08:19

    上位機(jī)和下位機(jī)是什么關(guān)系

    上位機(jī)和下位機(jī)在工業(yè)自動(dòng)化、儀器儀表等控制領(lǐng)域中是相互協(xié)作、緊密配合的關(guān)系,以下從定義、通信方式、功能分工、協(xié)同作用幾個(gè)方面詳細(xì)闡述它們的關(guān)系: 定義與角色 上位機(jī) :通常指具有強(qiáng)大數(shù)據(jù)處理、顯示
    的頭像 發(fā)表于 05-29 18:03 ?1471次閱讀

    Serder速率和以太網(wǎng)速率關(guān)系

    速率究竟什么關(guān)系?為何提到高速銅纜有說224G,也有說800Gbps,今天我們給各位說說看。以太網(wǎng)速率標(biāo)準(zhǔn)演進(jìn)趨勢Serder速率與以太網(wǎng)速率的關(guān)系可通過以下分析進(jìn)
    的頭像 發(fā)表于 04-10 07:34 ?1133次閱讀
    Serder速率和以太網(wǎng)速率<b class='flag-5'>關(guān)系</b>