Restful Api

RESTful 是什么?

RESTful本質(zhì)是一種軟件架構(gòu)風(fēng)格, 面向資源來(lái)設(shè)計(jì)API

解決的問(wèn)題

  • 降低了開(kāi)發(fā)的復(fù)雜度
  • 提高系統(tǒng)的可伸縮性能

設(shè)計(jì)概念和準(zhǔn)則

  • 網(wǎng)絡(luò)上的所有事物都可以抽象為資源笼沥。
  • 每一個(gè)資源都有唯一的資源標(biāo)志爬舰, 對(duì)資源的操作不會(huì)改變這些標(biāo)識(shí)抄罕。
  • 所有的操作都是無(wú)狀態(tài)的。

資源

什么是資源?

所謂的 "資源",就是網(wǎng)絡(luò)上的一個(gè)實(shí)體迟几,或者說(shuō)是網(wǎng)絡(luò)上的一個(gè)具體信息消请。

HTTP協(xié)議-URL

HTTP協(xié)議是一個(gè)屬于應(yīng)用層的協(xié)議, 特點(diǎn)是簡(jiǎn)潔瘤旨,快速梯啤。

schema://host[:port]/path[?query-string][#anchor]
  • schema 指定底層使用的協(xié)議(例如: http, https, ftp)
  • host 服務(wù)器的IP地址 或 域名
  • port 服務(wù)器端口,默認(rèn)80
  • path 訪問(wèn)資源的路徑
  • query-string 發(fā)送給HTTP服務(wù)器的數(shù)據(jù)
  • anchor 錨

HTTP協(xié)議-請(qǐng)求

組成格式:請(qǐng)求行, 消息報(bào)頭, 請(qǐng)求正文

請(qǐng)求行

格式: Method Request-URI HTTP-Version CRLF

舉例

GET / HTTP/1.1 CRLF

請(qǐng)求方法

  • GET 請(qǐng)求獲取Request-URI所標(biāo)識(shí)的資源
  • POST 在Request-URI 所標(biāo)識(shí)的資源后附加的數(shù)據(jù)
  • HEAD 請(qǐng)求獲取由Request-URI所標(biāo)識(shí)的資源的響應(yīng)消息報(bào)頭
  • PUT 請(qǐng)求服務(wù)器存儲(chǔ)一個(gè)資源存哲, 并用Request-URI作為其標(biāo)識(shí)
  • DELETE 請(qǐng)求服務(wù)器刪除Request-URI所標(biāo)識(shí)的資源
  • OPTIONS 請(qǐng)求查詢服務(wù)器的性能因宇, 或者查詢與資源相關(guān)的選項(xiàng)和需求

HTTP協(xié)議-響應(yīng)

組成格式: 狀態(tài)行, 消息報(bào)頭祟偷, 響應(yīng)正文

狀態(tài)行

HTTP-Version Status-Code Reason-phrase CRLF
HTTP/1.1 200 OK

常用狀態(tài)碼

  • 200 OK 客戶端請(qǐng)求成功
  • 400 Bad Request 客戶端請(qǐng)求有語(yǔ)法錯(cuò)誤察滑,不能被服務(wù)器所理解
  • 401 Unauthorized 服務(wù)器收到請(qǐng)求,但是拒絕提供服務(wù)
  • 404 Not Found 請(qǐng)求資源不存在
  • 500 Internal Server Error 服務(wù)器發(fā)生不可預(yù)期的錯(cuò)誤
  • 503 Server Unavailable 服務(wù)器當(dāng)前不能處理客戶端的請(qǐng)求

RESTful架構(gòu)與 其他架構(gòu)的區(qū)別

SOAP WebService

WebService 是一種跨編程語(yǔ)言和操作系統(tǒng)平臺(tái)的遠(yuǎn)程調(diào)用技術(shù)修肠。
WebService 通過(guò)HTTP協(xié)議發(fā)送請(qǐng)求和接受結(jié)果時(shí)采用XML格式封裝贺辰,并增加了一些特定的HTTP消息頭,這些特定的HTTP消息頭和XML內(nèi)容格式就是SOAP協(xié)議嵌施。

效率和易用性

SOAP由于各種需求不斷擴(kuò)充其本身協(xié)議的內(nèi)容饲化,導(dǎo)致在SOAP處理方面的性能有所下降。同時(shí)在易用性方面以及學(xué)習(xí)成本上也有所增加吗伤。
RESTful由于其面向資源接口設(shè)計(jì)以及操作抽象簡(jiǎn)化了開(kāi)發(fā)者的不良設(shè)計(jì)吃靠,同時(shí)也最大限度的利用了HTTP最初的應(yīng)用協(xié)議設(shè)計(jì)理念。

安全性(還需探索)

RESTful 對(duì)于資源型服務(wù)接口來(lái)說(shuō)很合適足淆,同時(shí)特別適合對(duì)于效率要求很高巢块,但是對(duì)于安全要求不高的場(chǎng)景。(安全性應(yīng)該可以提升)
SOAP的成熟性可以給需要提供多開(kāi)發(fā)語(yǔ)言的巧号,對(duì)于安全性要求較高的接口設(shè)計(jì)帶來(lái)便利族奢。所以單純從設(shè)計(jì)模式來(lái)看誰(shuí)會(huì)占據(jù)主導(dǎo)地位沒(méi)有什么意義,關(guān)鍵還是要看應(yīng)用場(chǎng)景丹鸿。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末越走,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子靠欢,更是在濱河造成了極大的恐慌弥姻,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,817評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件掺涛,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡疼进,警方通過(guò)查閱死者的電腦和手機(jī)薪缆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人拣帽,你說(shuō)我怎么就攤上這事疼电。” “怎么了减拭?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,354評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵蔽豺,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我拧粪,道長(zhǎng)修陡,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,498評(píng)論 1 284
  • 正文 為了忘掉前任可霎,我火速辦了婚禮魄鸦,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘癣朗。我一直安慰自己拾因,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布旷余。 她就那樣靜靜地躺著绢记,像睡著了一般。 火紅的嫁衣襯著肌膚如雪正卧。 梳的紋絲不亂的頭發(fā)上蠢熄,一...
    開(kāi)封第一講書(shū)人閱讀 49,829評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音穗酥,去河邊找鬼护赊。 笑死,一個(gè)胖子當(dāng)著我的面吹牛砾跃,可吹牛的內(nèi)容都是我干的骏啰。 我是一名探鬼主播,決...
    沈念sama閱讀 38,979評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼抽高,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼判耕!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起翘骂,我...
    開(kāi)封第一講書(shū)人閱讀 37,722評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤壁熄,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后碳竟,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體草丧,經(jīng)...
    沈念sama閱讀 44,189評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評(píng)論 2 327
  • 正文 我和宋清朗相戀三年莹桅,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了昌执。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,654評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖懂拾,靈堂內(nèi)的尸體忽然破棺而出煤禽,到底是詐尸還是另有隱情,我是刑警寧澤岖赋,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布檬果,位于F島的核電站,受9級(jí)特大地震影響唐断,放射性物質(zhì)發(fā)生泄漏选脊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評(píng)論 3 313
  • 文/蒙蒙 一栗涂、第九天 我趴在偏房一處隱蔽的房頂上張望知牌。 院中可真熱鬧,春花似錦斤程、人聲如沸角寸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,762評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至疚脐,卻和暖如春亿柑,著一層夾襖步出監(jiān)牢的瞬間棍弄,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,993評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工呼畸, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留痕支,地道東北人蛮原。 一個(gè)月前我還...
    沈念sama閱讀 46,382評(píng)論 2 360
  • 正文 我出身青樓卧须,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親儒陨。 傳聞我的和親對(duì)象是個(gè)殘疾皇子花嘶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評(píng)論 2 349

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