偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

從RPC到HTTP:網(wǎng)絡(luò)通信協(xié)議的演變

開(kāi)發(fā) 前端
gRPC是Google?發(fā)布的基于HTTP 2.0?傳輸層協(xié)議承載的高性能開(kāi)源軟件框架,提供了支持多種編程語(yǔ)言的、對(duì)網(wǎng)絡(luò)設(shè)備進(jìn)行配置和納管的方法。

前言

隨著信息技術(shù)的飛速發(fā)展,網(wǎng)絡(luò)通信協(xié)議在構(gòu)建分布式系統(tǒng)和應(yīng)用程序中發(fā)揮著至關(guān)重要的作用。從早期的遠(yuǎn)程過(guò)程調(diào)用(RPC)到現(xiàn)代的超文本傳輸協(xié)議(HTTP),網(wǎng)絡(luò)通信協(xié)議經(jīng)歷了顯著的演變。

在剛開(kāi)始C/S架構(gòu)流行時(shí),對(duì)于C/S架構(gòu)下的軟件,如聊天軟件、辦公軟件等,它們只需要與自己公司的服務(wù)器通信,所以可以使用自家定制的RPC協(xié)議進(jìn)行遠(yuǎn)程調(diào)用即可。但隨著萬(wàn)維網(wǎng)與B/S架構(gòu)的出現(xiàn),瀏覽器產(chǎn)生了,而瀏覽器需要訪問(wèn)來(lái)自不同公司的很多網(wǎng)站,這不能通過(guò)RPC進(jìn)行訪問(wèn),所以需要一個(gè)統(tǒng)一的標(biāo)準(zhǔn)來(lái)與這些網(wǎng)站服務(wù)器通信。

這時(shí)HTTP協(xié)議發(fā)揮作用的地方,HTTP為B/S架構(gòu)(瀏覽器/服務(wù)器架構(gòu))提供了一個(gè)統(tǒng)一的標(biāo)準(zhǔn),讓不同網(wǎng)站的服務(wù)器能夠與瀏覽器交互,HTTP也是RPC的一種實(shí)現(xiàn)方式。

圖片圖片

建立Socket連接至少需要一對(duì)套接字,其中一個(gè)運(yùn)行于客戶(hù)端,稱(chēng)為ClientSocket ,另一個(gè)運(yùn)行于服務(wù)器端,稱(chēng)為ServerSocket ,套接字之間的連接過(guò)程分為三個(gè)步驟:服務(wù)器監(jiān)聽(tīng),客戶(hù)端請(qǐng)求,連接確認(rèn)。

圖片圖片

在Web應(yīng)用中,瀏覽器請(qǐng)求一個(gè)URL,服務(wù)器就把生成的HTML網(wǎng)頁(yè)發(fā)送給瀏覽器,而瀏覽器和服務(wù)器之間的傳輸協(xié)議是HTTP。

介紹

圖片圖片

RPC

RPC(Remote Procedure Call:遠(yuǎn)程過(guò)程調(diào)用):是一種進(jìn)程間通信方式,是一種技術(shù)的思想,而不是規(guī)范。它允許程序調(diào)用另一個(gè)地址空間(通常是共享網(wǎng)絡(luò)的另一臺(tái)機(jī)器上)的過(guò)程或函數(shù),而不用程序員顯式編碼這個(gè)遠(yuǎn)程調(diào)用的細(xì)節(jié)。即程序員無(wú)論是調(diào)用本地的還是遠(yuǎn)程的函數(shù),本質(zhì)上編寫(xiě)的調(diào)用代碼基本相同。

RPC基于TCP協(xié)議,客服端與服務(wù)端需要進(jìn)行三次握手完成可靠連接,第四步進(jìn)行數(shù)據(jù)傳輸。因?yàn)門(mén)CP是數(shù)據(jù)傳輸層,傳輸協(xié)議需要服務(wù)器統(tǒng)一編寫(xiě),進(jìn)行二進(jìn)制傳輸,依賴(lài)序列化和反序列化規(guī)則,對(duì)于大部分應(yīng)用需要靈活變動(dòng)數(shù)據(jù)則不適用,RPC常用于Socket連接或一些基本不變動(dòng)的傳輸格式數(shù)據(jù),減少數(shù)據(jù)變動(dòng)帶來(lái)的開(kāi)發(fā)成本。

比如說(shuō)現(xiàn)在有兩臺(tái)服務(wù)器A和B,一個(gè)應(yīng)用部署在A服務(wù)器上,另一個(gè)應(yīng)用部署在B服務(wù)器上,如果A應(yīng)用想要調(diào)用B應(yīng)用提供的方法,由于他們不在一臺(tái)機(jī)器下,也就是說(shuō)它們不在一個(gè)JVM內(nèi)存空間中,是無(wú)法直接調(diào)用的,需要通過(guò)網(wǎng)絡(luò)進(jìn)行調(diào)用,那這個(gè)調(diào)用過(guò)程就叫做RPC。

  • 由于HTTP在應(yīng)用層中完成,整個(gè)通信的代價(jià)較高,遠(yuǎn)程過(guò)程調(diào)用中直接基于TCP進(jìn)行遠(yuǎn)程調(diào)用,數(shù)據(jù)傳輸在傳輸層TCP層完成,更適合對(duì)效率要求比較高的場(chǎng)景,RPC主要依賴(lài)于客戶(hù)端和服務(wù)端之間建立Socket鏈接進(jìn)行,底層實(shí)現(xiàn)比REST更復(fù)雜。
  • 無(wú)論是何種類(lèi)型的數(shù)據(jù),最終都需要序列化轉(zhuǎn)換成二進(jìn)制流在網(wǎng)絡(luò)上進(jìn)行傳輸,數(shù)據(jù)的發(fā)送方需要將對(duì)象序列化轉(zhuǎn)換為二進(jìn)制流,而數(shù)據(jù)的接收方則需要把二進(jìn)制流反序列化為對(duì)象.

HTTP

HTTP(Hypertext Transfer Protocol:超文本傳輸協(xié)議):是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種應(yīng)用層協(xié)議,主要用于分布式、協(xié)作式和超媒體信息系統(tǒng)的應(yīng)用,如萬(wàn)維網(wǎng)(WWW),客戶(hù)端發(fā)起請(qǐng)求,服務(wù)器處理請(qǐng)求并返回響應(yīng),通常用于web瀏覽器和web服務(wù)器間的通信,HTTP定義了請(qǐng)求報(bào)文和響應(yīng)報(bào)文的結(jié)構(gòu)以及不同的請(qǐng)求方法(GET, POST等)

圖片圖片

補(bǔ)充

HTTPS存在不同于HTTP的默認(rèn)端口及一個(gè)加密/身份驗(yàn)證層(在HTTP與TCP之間)

圖片圖片


gRPC是Google發(fā)布的基于HTTP 2.0傳輸層協(xié)議承載的高性能開(kāi)源軟件框架,提供了支持多種編程語(yǔ)言的、對(duì)網(wǎng)絡(luò)設(shè)備進(jìn)行配置和納管的方法。

圖片圖片

責(zé)任編輯:武曉燕 來(lái)源: 一安未來(lái)
相關(guān)推薦

2019-04-29 10:26:49

TCP網(wǎng)絡(luò)協(xié)議網(wǎng)絡(luò)通信

2010-06-09 11:31:55

網(wǎng)絡(luò)通信協(xié)議

2010-06-14 19:13:28

網(wǎng)絡(luò)通信協(xié)議

2021-08-13 11:27:25

網(wǎng)絡(luò)通信數(shù)據(jù)

2010-06-09 11:57:42

網(wǎng)絡(luò)通信協(xié)議

2010-07-01 15:45:22

網(wǎng)絡(luò)通信協(xié)議

2024-02-20 19:53:57

網(wǎng)絡(luò)通信協(xié)議

2010-06-09 12:20:34

網(wǎng)絡(luò)通信協(xié)議層

2010-06-12 16:34:57

網(wǎng)絡(luò)通信協(xié)議

2021-03-04 09:50:23

Redis網(wǎng)絡(luò)通信Redis服務(wù)器

2010-06-12 16:51:54

計(jì)算機(jī)網(wǎng)絡(luò)通信協(xié)議

2023-11-04 09:06:11

2019-09-25 08:25:49

RPC網(wǎng)絡(luò)通信

2023-10-12 19:37:50

通信協(xié)議HTTP

2010-06-11 14:31:08

通信協(xié)議

2022-12-02 14:42:37

2009-04-20 11:12:54

共享協(xié)議網(wǎng)絡(luò)故障

2010-06-09 10:43:54

廣義網(wǎng)協(xié)議

2010-06-11 14:25:08

通信協(xié)議

2010-06-25 14:43:46

通信協(xié)議
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)