www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 公眾號精選 > 架構師社區(qū)
[導讀]身為 Java Web開發(fā)我發(fā)現(xiàn)很多人一些Web基礎問題都答不上來。上周我面試了一個三年經(jīng)驗的小伙子,一開始我問他 HTTP/1、HTTP/2相關的他到是能答點東西出來。后來我問他:你知道HTTP的本質是什么嗎? 他支支吾吾答不出來……

身為 ?Java Web 開發(fā)我發(fā)現(xiàn)很多人一些 Web 基礎問題都答不上來。

上周我面試了一個三年經(jīng)驗的小伙子,一開始我問他 HTTP/1、HTTP/2相關的他到是能答點東西出來。

后來我問他:你知道 HTTP 的本質是什么嗎?

他支支吾吾答不出來。

我接著問那你知道什么是 HTTP 和 RPC 的關系嗎?

為什么要有 RPC?

他眼睛盯著桌上的水,額了半天。

最后我跟他說回家等通知吧(當然還有很多都答不上來哈,多方位我都問了)。

面完試之后我回去問了同事相同的問題,我發(fā)現(xiàn)答的也不夠好,有些地方有點混淆。

所以今兒我就整理一波來說說這類問題,相信看完文章之后你會有進一步的認識。

上周我面了個三年Javaer,這幾個問題都沒答出來

HTTP 的本質

首先你要明確 HTTP 是一個協(xié)議,是一個超文本傳輸協(xié)議。

它基于 TCP/IP 來傳輸文本、圖片、視頻、音頻等。

重點來了。

HTTP 不提供數(shù)據(jù)包的傳輸功能,也就是數(shù)據(jù)包從瀏覽器到服務端再來回的傳輸和它沒關系。

這是 TCP/IP 干的。

那 HTTP 有啥用?我們來分析一波。

我們上網(wǎng)要么就是獲取一些信息來看,要么就是修改一些信息。

比如你用瀏覽器刷微博就是獲取信息,發(fā)微博就是修改信息。

所以說瀏覽器需要告知服務器它需要什么,這次的請求是要獲取哪些信息?發(fā)怎么樣的微博。

這就涉及到瀏覽器和服務器之間的通信交互。

交互就需要一種格式。

像你我之間的談話就用中文,你要突然換成俄語我聽不懂那不就 GG 了。

所以說 HTTP 它規(guī)定了一種格式,一種通信格式,大家都用這個格式來交談。

這樣不論你是什么服務器、什么瀏覽器都能順利的交流,減少交互的成本。

就像全世界如果都講中文,那我們不就不需要學英文了,那不就較少交互的成本了。

不像現(xiàn)在我們還得學英文,不然就看不懂文檔等等。

萬一之后俄語又起來了,咱還得對接俄文,這交互成本是不是就上來了。

而網(wǎng)絡世界還好,咱們現(xiàn)在的 Web 交互基本上就是 HTTP 了。

其實 HTTP 協(xié)議的格式很像我們信封,有個固定的格式。

上周我面了個三年Javaer,這幾個問題都沒答出來

左上角寫郵編,右上角貼郵票,然后地址姓名啥的依次來。

因為計算機是很死板的,不像我們?nèi)艘粯佑幸环N立體掃描感,所以要規(guī)定先寫頭、再寫尾。

你要是先寫尾,再寫頭計算機就認不出來了。

所以 HTTP 就規(guī)定了請求先搞請求行、再搞請求報頭、再搞請求體。

響應就狀態(tài)行、響應報頭、響應體。

上周我面了個三年Javaer,這幾個問題都沒答出來

所以 HTTP 的本質是什么?

就是客戶端和服務端約定好的一種通信格式。

對 HTTP 想有多的認識可以看我之前的文章 從 1950 年開始說起,帶你看 HTTP 的演進之路

HTTP 和 RPC 的關系

HTTP 和 RPC 其實是兩個維度的東西, HTTP 指的是通信協(xié)議。

而 RPC 則是遠程調(diào)用,其對應的是本地調(diào)用。

RPC 的通信可以用 HTTP 協(xié)議,也可以自定義協(xié)議,是不做約束的。

像之前的單體時代,我們的 service 調(diào)用就是自己實現(xiàn)的方法,是本地進程內(nèi)的調(diào)用。

????public?User?getUserById(Long?id)?{
???????return?userDao.getUserById(id);?//?這叫本地調(diào)用
????}

現(xiàn)在都是微服務了,根據(jù)業(yè)務模塊做了不同的拆分,像用戶的服務不用我這個小組負責,我這小組只要寫訂單服務就行了。

但是我們服務需要用到用戶的信息,于是我們需要調(diào)用用戶小組的服務,于是代碼變成了以下這種

????public?User?getUserById(Long?id)?{
???????return?userConsumer.getUserById(id);?//?這是遠程調(diào)用,邏輯是用戶小組的服務實現(xiàn)的。
????}

可能還有些小伙伴不太清楚,再來看個圖。

上周我面了個三年Javaer,這幾個問題都沒答出來

把之前的用戶實現(xiàn)拆分出來弄了一個用戶服務,訂單相關的也拆成了訂單服務,都單獨部署。

這樣訂單相關的服務要獲取用戶的信息就需要遠程調(diào)用了。

可以看到 RPC 就是通過網(wǎng)絡進行遠程調(diào)用,訂單服務其實就是客戶端,而用戶服務是服務端。

這又涉及到交互了,所以也需要約定一個格式,至于要不要用 HTTP 這個格式,就是大家自己看著辦。

至此相信你對 HTTP 是啥也清楚了。

RPC 和 HTTP 的之間的關系也清楚了。

下次再也不怕被面試官問這個了。

那為什么要有 RPC?

可能你常聽到什么什么之間是 RPC 調(diào)用的,那你有沒有想過為什么要 RPC, 我們直接 WebClient HTTP 調(diào)用不行么?

其實 RPC 調(diào)用是因為服務的拆分,或者本身公司內(nèi)部的多個服務之間的通信。

服務的拆分獨立部署,那服務間的調(diào)用就必然需要網(wǎng)絡通信,用 WebClient 調(diào)用當然可行,但是比較麻煩。

我們想即使服務被拆分了但是使用起來還是和之前本地調(diào)用一樣方便。

所以就出現(xiàn)了 RPC 框架,來屏蔽這些底層調(diào)用細節(jié),使得我們編碼上還是和之前本地調(diào)用相差不多。

并且 HTTP 協(xié)議比較的冗余,RPC 都是內(nèi)部調(diào)用所以不需要太考慮通用性,只要公司內(nèi)部保持格式統(tǒng)一即可。

所以可以做各種定制化的協(xié)議來使得通信更高效。

比如規(guī)定 yes 代表 yes的練級攻略,你看是不是更高效了,少傳輸?shù)?5 個字。

就像特殊行動的暗號,高效簡潔!

所以公司內(nèi)部服務的調(diào)用一般都用 RPC,而 HTTP 的優(yōu)勢在于通用,大家都認可這個協(xié)議。

所以三方平臺提供的接口都是通過 HTTP 協(xié)議調(diào)用的。

所以現(xiàn)在知道為什么我們調(diào)用第三方都是 HTTP ,公司內(nèi)部用 RPC 了吧?

對了。

上面這段話看起來仿佛 HTTP 和 RPC 是對等關系,不過相信大家看了之前的解析心里應該都有數(shù)了。

最后

最近幾次面試下來我發(fā)現(xiàn)挺多同學基礎還是挺薄弱的。

地基要牢啊,八股文得背沒錯,但是這種基本概念性的東西還是有必要清晰。

看起來好像對平時的編碼沒什么用,但是這可以認為是一個“世界觀”。

這對于一些事物的判斷和認知有很重要的意義。

你站的高才能看的遠。

對了,理解了 HTTP 的本質相信你對 RESTful 風格也應該會有更深一層的理解。

HTTP 它是協(xié)議,不是運輸通道。

特別推薦一個分享架構+算法的優(yōu)質內(nèi)容,還沒關注的小伙伴,可以長按關注一下:

上周我面了個三年Javaer,這幾個問題都沒答出來

上周我面了個三年Javaer,這幾個問題都沒答出來

上周我面了個三年Javaer,這幾個問題都沒答出來

長按訂閱更多精彩▼

上周我面了個三年Javaer,這幾個問題都沒答出來

如有收獲,點個在看,誠摯感謝

免責聲明:本文內(nèi)容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉