首頁  >  文章  >  web前端  >  Node.js中什麼是RPC通訊?和Ajax有啥差別?

Node.js中什麼是RPC通訊?和Ajax有啥差別?

青灯夜游
青灯夜游轉載
2021-11-08 09:56:342289瀏覽

這篇文章帶大家了解一下RPC通信,介紹一下RPC和Ajax的相同點和不同點,希望對大家有幫助!

Node.js中什麼是RPC通訊?和Ajax有啥差別?

什麼是RPC通訊

先導語

對後端人員來說,RPC通訊是一個很熟悉的也很容易理解的東西,但是對於像我這樣的前端人員來講,對RPC就比較陌生,理解起來也相對困難一點了。對於這個問題,我們今天來嘗試下,站在前端的角度來理解下RPC通訊。 【推薦學習:《nodejs 教學》】

RPC和Ajax

RPC和Ajax是很相像的,它們之間有很多相同點。比如說:

  • 都是兩台電腦之間的通訊

  • 都會約定資料格式

#RPC和Ajax的不同點:

  • 不一定基於DNS作為尋址服務

  • ##應用層協定一般不是用HTTP協定

  • 基於TCP或UDP協定

#接下來我們來一個說下他們之間的不同點:

1.尋址伺服器的不同

Ajax使用DNS作為尋址伺服器

Ajax發起請求的URL一般是這樣的,例如:

HTTP://域名/路徑, 但是電腦之間的通訊依靠的是IP而不是域名,所以便需要一個尋址伺服器來尋找到對應域名的IP,Ajax使用的便是DNS來作為尋址伺服器。再得到IP位址之後,瀏覽器根據IP位址來找對應的伺服器,然後伺服器把資料回傳給瀏覽器。 如下圖的過程:

Node.js中什麼是RPC通訊?和Ajax有啥差別?

RPC 透過特定的伺服器來做尋址服務

RPC跟Ajax的解析過程類似,但是它不是使用DNS來做尋址伺服器的,而且,它是透過某個ID來尋找對應的IP的。例如:阿里的ID是使用VIP這樣類似的ID。

Node.js中什麼是RPC通訊?和Ajax有啥差別?

2. TCP通訊方式

#瀏覽器使用TCP就是遵循HTTP規範,但RPC使用TCP就有多種方式:

1.單工通訊
2.半雙工通訊
3.雙工通訊

單工通訊

#單工通訊就是,在客戶端和伺服器端的連線中,永遠只有一方可以給另外一方傳送訊息

半雙工通訊##半雙工通訊就是:在同一時段中,只有一方能給另外一方發送訊息,只有當訊息發送完畢之後,另外一方才可以發送訊息。如下圖:

Node.js中什麼是RPC通訊?和Ajax有啥差別?

雙工通訊

雙工通訊就是兩方都可以隨時向對方發送訊息。如下圖:

Node.js中什麼是RPC通訊?和Ajax有啥差別?

協定不同

Ajax是使用HTTP協定。而RPC通訊則是使用二進位協定。二進位協定與HTTP協定相比主要有兩個優勢,分別是:

1. 更小的資料包體積(二進位資料而非文字資料)
2. 更快的編解碼速度(電腦對二進位資料的編解碼速度很明顯高於對文字資料的編解碼速度!)

#結束語

##今天,我們根據對比Ajax和RPC的相同點與不同點來了解了什麼是RPC通訊。下次,我們將透過學習NodejS的buffer編解碼二進位資料

來進一步學習RPC。那麼,下次見。好好學習,天天向上!

更多程式相關知識,請造訪:Node.js中什麼是RPC通訊?和Ajax有啥差別?程式設計影片

! !

以上是Node.js中什麼是RPC通訊?和Ajax有啥差別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:juejin.cn。如有侵權,請聯絡admin@php.cn刪除