溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

RestFul架構(gòu)介紹

發(fā)布時間:2020-06-19 14:21:35 來源:億速云 閱讀:176 作者:元一 欄目:編程語言

一、RestFul簡介
  REST(英文:Representational State Transfer,簡稱REST)描述了一個架構(gòu)樣式的網(wǎng)絡(luò)系統(tǒng),比如 web 應(yīng)用程序。它首次出現(xiàn)在 2000 年 Roy Fielding 的博士論文中,Roy Fielding是 HTTP 規(guī)范的主要編寫者之一。在目前主流的三種Web服務(wù)交互方案中,REST相比于SOAP(Simple Object Access protocol,簡單對象訪問協(xié)議)以及XML-RPC更加簡單明了,無論是對URL的處理還是對Payload的編碼,REST都傾向于用更加簡單輕量的方法設(shè)計和實現(xiàn)。值得注意的是REST并沒有一個明確的標(biāo)準(zhǔn),而更像是一種設(shè)計的風(fēng)格。

  簡單地來說REST它是一種使用URL來定位資源,使用HTTP請求描述操作的Web服務(wù)規(guī)范。REST主要包括以下幾方面:

 ?。?) REST是一組架構(gòu)約束條件和原則,而滿足這些約束條件和原則的應(yīng)用程序就是RESTful。 
 ?。?)REST的目標(biāo)是構(gòu)建可擴展的Web Service,它是一種更簡單的SOAP(Simple Object Access Protocol)協(xié)議以及以WSDL為基礎(chǔ)的WebService的替代。 
  (3)REST采用的是HTTP協(xié)議并通過HTTP中的GET、POST、PUT、DELETE等動詞收發(fā)數(shù)據(jù)。 
 ?。?) REST希望通過HTTP來完成對數(shù)據(jù)的元操作,即傳統(tǒng)的CRUD(Create、Read、Update、Delete)分別對應(yīng)GET、POST、PUT、DELETE,這樣就統(tǒng)一了數(shù)據(jù)操作的接口,實現(xiàn)在不同平臺上提供一套相同的服務(wù)。 
 ?。?) REST是一種面向服務(wù)的、分布式的API設(shè)計風(fēng)格。

  RESTful API的開發(fā)和使用,無非是客戶端向服務(wù)器發(fā)請求(request),以及服務(wù)器對客戶端請求的響應(yīng)(response)。所以RESTful架構(gòu)風(fēng)格具有統(tǒng)一接口的特點,即:使用不同的http方法表達(dá)不同的行為:

GET(SELECT):從服務(wù)器取出資源(一項或多項)
POST(CREATE):在服務(wù)器新建一個資源
PUT(UPDATE):在服務(wù)器更新資源(客戶端提供完整資源數(shù)據(jù))
PATCH(UPDATE):在服務(wù)器更新資源(客戶端提供需要修改的資源數(shù)據(jù))
DELETE(DELETE):從服務(wù)器刪除資源

二、RESTful架構(gòu)優(yōu)點

  前后端分離,減少流量
  安全問題集中在接口上,由于接受json格式,防止了注入型等安全問題
前端無關(guān)化,后端只負(fù)責(zé)數(shù)據(jù)處理,前端表現(xiàn)方式可以是任何前端語言(android,ios,html5)
  前端和后端人員更加專注于各自開發(fā),只需接口文檔便可完成前后端交互,無需過多相互了解
  服務(wù)器性能優(yōu)化:由于前端是靜態(tài)頁面,通過nginx便可獲取,服務(wù)器主要壓力放在了接口上。

三、原則條件

  REST 指的是一組架構(gòu)約束條件和原則。滿足這些約束條件和原則的應(yīng)用程序或設(shè)計就是 RESTful。

  Web 應(yīng)用程序最重要的 REST 原則是,客戶端和服務(wù)器之間的交互在請求之間是無狀態(tài)的。從客戶端到服務(wù)器的每個請求都必須包含理解請求所必需的信息。如果服務(wù)器在請求之間的任何時間點重啟,客戶端不會得到通知。此外,無狀態(tài)請求可以由任何可用服務(wù)器回答,這十分適合云計算之類的環(huán)境??蛻舳丝梢跃彺鏀?shù)據(jù)以改進(jìn)性能。

  在服務(wù)器端,應(yīng)用程序狀態(tài)和功能可以分為各種資源。資源是一個有趣的概念實體,它向客戶端公開。資源的例子有:應(yīng)用程序?qū)ο?、?shù)據(jù)庫記錄、算法等等。每個資源都使用 URI (Universal Resource Identifier) 得到一個唯一的地址。所有資源都共享統(tǒng)一的接口,以便在客戶端和服務(wù)器之間傳輸狀態(tài)。使用的是標(biāo)準(zhǔn)的 HTTP 方法,比如 GET、PUT、POST 和 DELETE。Hypermedia 是應(yīng)用程序狀態(tài)的引擎,資源表示通過超鏈接互聯(lián)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI