chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

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

lhl545545 ? 來(lái)源:電子發(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)制包過(guò)來(lái)(然后阻塞),server處理完回復(fù)一個(gè)包,client收到后醒來(lái)。在二進(jìn)制協(xié)議中一般可以在包中加個(gè)id來(lái)指明回復(fù)和請(qǐng)求的對(duì)應(yīng)關(guān)系,這樣我們就能在一個(gè)tcp連接上同時(shí)發(fā)起多個(gè)請(qǐng)求和回復(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è)請(qǐng)求過(guò)去,阻塞,等待server處理完后,再醒來(lái)。這不就是RPC么。所以這兒的選擇更多是平衡功能和性能。一般來(lái)說(shuō),面向終端用戶的盡量用Restful HTTP。原因是認(rèn)知廣,直觀,編程語(yǔ)言都支持HTTP(包括shell,這樣調(diào)試起來(lái)方便),性能不是那么重要,方便用戶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)程過(guò)程調(diào)用, 很簡(jiǎn)單的概念, 像調(diào)用本地服務(wù)(方法)一樣調(diào)用服務(wù)器的服務(wù)(方法)。

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

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

一個(gè)簡(jiǎn)單的通信過(guò)程通常為:

Request

<?xml version=“1.0”?>

member.get_username_by_id

Response

<?xml version=“1.0”?>

Zhu Tao

向服務(wù)器發(fā)送一個(gè)過(guò)程調(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è)基本特征)

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

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

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

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

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

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

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

我答: You got it!

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

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

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

以HTTP為例, 名詞即為URI(統(tǒng)一資源標(biāo)識(shí)), 動(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),那么就請(qǐng)記住 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)用。

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

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

讓我們回到引入部分的2個(gè)問(wèn)題。 當(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)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • RPC
    RPC
    +關(guān)注

    關(guān)注

    0

    文章

    113

    瀏覽量

    12188
  • Restful
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    邏輯“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

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

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

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

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

    請(qǐng)問(wèn)計(jì)算ADS6442的實(shí)際功耗和哪些因素有關(guān),和采樣時(shí)鐘什么關(guān)系

    請(qǐng)問(wèn)計(jì)算ADS6442的實(shí)際功耗和哪些因素有關(guān),和采樣時(shí)鐘什么關(guān)系?如何能降低功耗呢
    發(fā)表于 02-14 06:00

    TLV5636 DA輸出的幅值跟參考電壓是什么關(guān)系?

    我用的DA是TLV5636,DA輸出的幅值跟參考電壓是什么關(guān)系??從0至4096調(diào)到2048的時(shí)候,輸出幅值2.68V,再往上輸出幅值就調(diào)不上去了,芯片的參考電壓是2.5V。
    發(fā)表于 02-13 08:13

    噪聲與ADC的范圍和位數(shù)是什么關(guān)系呢?怎樣選用和匹配?

    以上三者是什么關(guān)系呢?怎樣選用和匹配?ADC的動(dòng)態(tài)輸入范圍一般都有多大的?謝謝
    發(fā)表于 02-08 07:14

    TLV5613和TLC5613什么關(guān)系

    請(qǐng)問(wèn)一下,在看TLV5613 datasheet的時(shí)候, 發(fā)現(xiàn)芯片是20腳的,為什么后面給的封裝信息都是14腳或者16腳的。 另外,TLV5613和TLC5613什么關(guān)系,我手頭有14腳的TLC5613,卻找不到相關(guān)資料。
    發(fā)表于 02-06 06:54

    ADC的DGND與控制器的DGND是什么關(guān)系

    和DGND是一個(gè)地嗎?這兩個(gè)地是否要連接在一起,然后連接到系統(tǒng)的模擬地。 2.ADC的DGND與控制器的DGND是什么關(guān)系? 參考別人設(shè)計(jì),有人將ADC的AGND和DGND連接到一起作為模擬地,將處理器
    發(fā)表于 01-24 08:04

    請(qǐng)問(wèn)ADC的采樣速率,轉(zhuǎn)換時(shí)間,數(shù)字接口之間的讀寫速率之間有什么關(guān)系沒(méi)有?

    請(qǐng)問(wèn)ADC的采樣速率,轉(zhuǎn)換時(shí)間,數(shù)字接口之間的讀寫速率之間有什么關(guān)系沒(méi)有? 謝謝!
    發(fā)表于 01-23 08:17

    關(guān)系型數(shù)據(jù)庫(kù)和非關(guān)系區(qū)別

    關(guān)系型數(shù)據(jù)庫(kù)和非關(guān)系型數(shù)據(jù)庫(kù)在多個(gè)方面存在顯著差異,主機(jī)推薦小編為您整理發(fā)布關(guān)系型數(shù)據(jù)庫(kù)和非關(guān)系區(qū)別,以下是它們的主要
    的頭像 發(fā)表于 01-10 09:58 ?1413次閱讀

    對(duì)于1位量化的Sigma-delta調(diào)制器來(lái)說(shuō),As和SNR和DR分別是什么關(guān)系?

    最近在學(xué)習(xí)Sigma-deltaADC的理論,有些問(wèn)題請(qǐng)教一下專家 1. 請(qǐng)問(wèn)對(duì)于1位量化的Sigma-delta 調(diào)制器來(lái)說(shuō),As和SNR和DR分別是什么關(guān)系,不同論文得到的SNR、DR和標(biāo)準(zhǔn)
    發(fā)表于 01-02 08:04

    ADS1282的SPI時(shí)鐘SCLK和芯片主時(shí)鐘MCLK有什么關(guān)系嗎?

    ADS1282的SPI時(shí)鐘SCLK和芯片主時(shí)鐘MCLK有什么關(guān)系嗎? SCLK頻率太高會(huì)不會(huì)影響ADS1282配置或讀數(shù)失敗?
    發(fā)表于 01-01 08:34

    ADC124S051手冊(cè)中的Fsclk和Fs(Sample Rate)是什么關(guān)系?

    1、手冊(cè)中的Fsclk和Fs(Sample Rate)是什么關(guān)系; 2、(STM32F1操作ADC)stm32送給ADC的SCLK必須要8Mhz >= SCLK >=3.2Mhz嗎? 3、如果想實(shí)現(xiàn)ADC的DOUT輸出速率是500khz,那么應(yīng)該給SCLK多大的頻率?
    發(fā)表于 12-09 08:36

    請(qǐng)問(wèn)ADC的采樣率和提供的工作頻率是什么關(guān)系?

    請(qǐng)問(wèn)ADC的采樣率和提供的工作頻率是什么關(guān)系?奈奎斯特采樣定理是不是指的采樣頻率?
    發(fā)表于 12-06 06:13