RESTful分布式架構(gòu)

2018.7.25

什么是REST落恼?


Representational State Transfer 即表現(xiàn)層狀態(tài)轉(zhuǎn)換,這是一種分布式的萬維網(wǎng)軟件構(gòu)架庐完,基于HTTP確定的一組約束和屬性琼讽,其最成功的實例就是HTTP1.1協(xié)議。REST也是當(dāng)前最流行的分布式Web架構(gòu)之一糖驴。

HTTP1.0協(xié)議制定時面向的是Web的靜態(tài)文本僚祷,隨著Ajax等出現(xiàn),簡單的靜態(tài)文本已經(jīng)無法滿足需求贮缕,人們迫切需要制定新的協(xié)議規(guī)范動態(tài)富文本的傳輸和使用辙谜。

REST


REST的五個關(guān)鍵詞


資源、資源表述感昼、狀態(tài)轉(zhuǎn)移装哆、統(tǒng)一接口、超文本驅(qū)動定嗓。
  • 資源(resource):資源是對互聯(lián)網(wǎng)中信息數(shù)據(jù)的一種抽象性描述蜕琴,有點像面向?qū)ο蟮摹皩ο蟆钡母拍睿琑EST架構(gòu)即面向資源的架構(gòu)宵溅,資源是整個網(wǎng)絡(luò)處理的核心凌简。
  • 資源表述(representation): 即資源的表現(xiàn)形式,常用的有HTTP文本恃逻,Json号醉,XML等。
  • 狀態(tài)轉(zhuǎn)移(state transfer):這里的狀態(tài)轉(zhuǎn)移和自動機(jī)中的概念不同辛块,“狀態(tài)”指的是資源在某一時刻的表現(xiàn)形式畔派,“轉(zhuǎn)移”是指按照一定的邏輯轉(zhuǎn)化資源表現(xiàn)形式或者傳輸資源。
  • 統(tǒng)一接口(Uniform inference):因為是分布式架構(gòu)润绵,為了方便不同服務(wù)器和用戶使用和規(guī)范线椰,REST要求使用統(tǒng)一的接口規(guī)范。
  • 超文本驅(qū)動:REST架構(gòu)的提出很大程度上是用來指導(dǎo)HTTP1.1協(xié)議的制定尘盼,支持超鏈接和URI形式的驅(qū)動方式憨愉,URI可以理解成資源的唯一標(biāo)志,是資源的地址卿捎。


REST的五個架構(gòu)約束


客戶-服務(wù)器配紫、無狀態(tài)、緩存午阵、統(tǒng)一接口躺孝、分層系統(tǒng)享扔、按需代碼。
  • 客戶-服務(wù)器:REST是一種響應(yīng)式架構(gòu)植袍,一般只允許客戶端主動向服務(wù)器端發(fā)起響應(yīng)請求惧眠,服務(wù)器端做出對應(yīng)的響應(yīng)操作。
  • 無狀態(tài):無狀態(tài)是相對于有狀態(tài)而言的于个,狀態(tài)是指服務(wù)請求的狀態(tài)氛魁,是用戶交互時的會話信息√ǎ基于有狀態(tài)的Web服務(wù)會將用戶的相關(guān)信息保存在與該用戶交互的server的session中秀存,Client的用戶請求只能被該server接受和理解,不利于負(fù)載均衡羽氮』蛄矗基于無狀態(tài)的Web服務(wù)中,Clinet的用戶請求必須攜帶供server參考的全部信息乏苦,每一個請求都是獨立的株扛,可以被任何可用的server接受,便于進(jìn)行擴(kuò)展汇荐。
  • 緩存:指的是客戶端可以緩存一些需要的數(shù)據(jù)洞就,以便于同樣的請求操作復(fù)用。
  • 統(tǒng)一接口: 參考上述“五個關(guān)鍵詞”掀淘。
  • 分層系統(tǒng):REST將結(jié)構(gòu)分層的思想使得各層服務(wù)器相對獨立旬蟋,各層服務(wù)器只需面向直接相鄰的服務(wù)器或用戶,提高了系統(tǒng)的可伸縮性革娄。
  • 按需代碼(可選):指的是客戶端可以選擇下載Java applet和JavaScript腳本來擴(kuò)展系統(tǒng)功能倾贰。

REST的六個特征

面向資源、可尋址拦惋、連通性匆浙、無狀態(tài)、統(tǒng)一接口厕妖、超文本驅(qū)動首尼。
  • 可尋址:URI是資源的唯一標(biāo)識(地址),系統(tǒng)可根據(jù)URI定位或重定位到資源言秸。
  • 連通性:資源在設(shè)計時要考慮資源之間的聯(lián)系软能,避免存在孤立的資源。

參考資料

理解本真的REST架構(gòu)風(fēng)格 李錕

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末举畸,一起剝皮案震驚了整個濱河市查排,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌抄沮,老刑警劉巖跋核,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件岖瑰,死亡現(xiàn)場離奇詭異,居然都是意外死亡了罪,警方通過查閱死者的電腦和手機(jī)锭环,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進(jìn)店門聪全,熙熙樓的掌柜王于貴愁眉苦臉地迎上來泊藕,“玉大人,你說我怎么就攤上這事难礼⊥拊玻” “怎么了?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵蛾茉,是天一觀的道長讼呢。 經(jīng)常有香客問我,道長谦炬,這世上最難降的妖魔是什么悦屏? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮键思,結(jié)果婚禮上础爬,老公的妹妹穿的比我還像新娘。我一直安慰自己吼鳞,他們只是感情好看蚜,可當(dāng)我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著赔桌,像睡著了一般供炎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上疾党,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天音诫,我揣著相機(jī)與錄音,去河邊找鬼雪位。 笑死竭钝,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的茧泪。 我是一名探鬼主播蜓氨,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼队伟!你這毒婦竟也來了穴吹?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤嗜侮,失蹤者是張志新(化名)和其女友劉穎港令,沒想到半個月后啥容,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡顷霹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年咪惠,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片淋淀。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡遥昧,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出朵纷,到底是詐尸還是另有隱情炭臭,我是刑警寧澤,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布袍辞,位于F島的核電站鞋仍,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏搅吁。R本人自食惡果不足惜威创,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望谎懦。 院中可真熱鬧肚豺,春花似錦、人聲如沸党瓮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽寞奸。三九已至呛谜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間枪萄,已是汗流浹背隐岛。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留瓷翻,地道東北人聚凹。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像齐帚,于是被迫代替她去往敵國和親妒牙。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,884評論 2 354

推薦閱讀更多精彩內(nèi)容