restful通俗理解

作者:手打丸子

鏈接:https://www.zhihu.com/question/28557115/answer/142289037

來(lái)源:知乎

著作權(quán)歸作者所有,轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán)。

restful是種接口設(shè)計(jì)風(fēng)格,在分布式系統(tǒng)架構(gòu)下特別重要。

rest-representation state transfer

你的接口必須有以下特性(以HTTP協(xié)議為例,當(dāng)然符合rest的不止這一種):

1.可描述性(representation):你可以準(zhǔn)確的描述你的接口;包括接口地址(uri)、操作(PUT/GET/POST/DELETE)、資源項(xiàng)等(不止這些,但就是這個(gè)意思);

2.有狀態(tài)的(state):你的接口調(diào)用后會(huì)返回調(diào)用結(jié)果;400、500等返回狀態(tài),來(lái)統(tǒng)一標(biāo)識(shí)這個(gè)接口的運(yùn)行狀態(tài),并且狀態(tài)需要符合規(guī)范;

3.可轉(zhuǎn)移(transfer):你的調(diào)用可以轉(zhuǎn)移到另外的服務(wù)器上;這就要求你的服務(wù)端不保存客戶(hù)端狀態(tài);你在分布式狀態(tài)下調(diào)用哪一臺(tái)服務(wù)器都是一樣的效果,這就要求你的服務(wù)端必須不能維護(hù)客戶(hù)端請(qǐng)求的狀態(tài),比如你調(diào)用服務(wù)器A和服務(wù)器B都是一樣結(jié)果,或者調(diào)用服務(wù)器A兩次都會(huì)得到一樣的結(jié)果;

反證補(bǔ)充:

1.可描述性:試想,你都無(wú)法準(zhǔn)確描述你的接口,你上哪里調(diào)用它;

2.有狀態(tài)的:試想,你的接口沒(méi)個(gè)規(guī)范的狀態(tài)返回調(diào)用結(jié)果,在那么多接口的情況下,你咋知道調(diào)用結(jié)果如何;

3.可轉(zhuǎn)移:試想,你的服務(wù)器A保存了客戶(hù)端甲的狀態(tài),但是服務(wù)器B沒(méi)有;這時(shí),客戶(hù)端甲發(fā)請(qǐng)求給服務(wù)器A/B完全有可能得到不同的結(jié)果,而明明客戶(hù)端甲發(fā)的請(qǐng)求是一樣的,并且是同一接口;在分布式下,經(jīng)常會(huì)做負(fù)載均衡之類(lèi)的,用戶(hù)甲發(fā)的請(qǐng)求被誰(shuí)處理完全是隨機(jī)的。

注:以上描述不嚴(yán)謹(jǐn),僅為通俗易懂;可能理解有誤,有不當(dāng)之處請(qǐng)指出。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,596評(píng)論 19 139
  • 國(guó)家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報(bào)批稿:20170802 前言: 排版 ...
    庭說(shuō)閱讀 12,441評(píng)論 6 13
  • 從三月份找實(shí)習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂(lè)視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,815評(píng)論 11 349
  • 實(shí)用英語(yǔ):下載地址 評(píng)級(jí):★★★ 第一眼應(yīng)用的學(xué)習(xí)類(lèi)最佳選擇,首先無(wú)論是界面的簡(jiǎn)介和整個(gè)布局的UI,都能夠讓人第一...
    天空之南閱讀 608評(píng)論 1 49
  • 異地戀最難受的就是我需要你的時(shí)候你不在我身邊,女朋友剛才更我說(shuō)了這段話,我好害怕,害怕自己一個(gè)人難受的時(shí)候你不在我...
    遠(yuǎn)方有個(gè)等你的人閱讀 280評(píng)論 0 0

友情鏈接更多精彩內(nèi)容