RESTful架構優勢:html
先後端分離,減小流量
安全問題集中在接口上,因爲接受json格式,防止了注入型等安全問題
前端無關化,後端只負責數據處理,前端表現方式能夠是任何前端語言(android,ios,html5)
前端和後端人員更加專一於各自開發,只需接口文檔即可完成先後端交互,無需過多相互瞭解
服務器性能優化:因爲前端是靜態頁面,經過nginx即可獲取,服務器主要壓力放在了接口上
1、RestFul簡介
REST(Representational State Transfer 一般被翻譯爲「表述性狀態傳輸」或者「表述性狀態轉移」)是RoyFielding提出的一個描述互聯繫統架構風格的名詞。爲何稱爲REST?Web本質上由各類各樣的資源組成,資源由URI 惟一標識。瀏覽器(或者任何其它相似於瀏覽器的應用程序)將展現出該資源的一種表現方式,或者一種表現狀態。若是用戶在該頁面中定向到指向其它資源的連接,則將訪問該資源,並表現出它的狀態。這意味着客戶端應用程序隨着每一個資源表現狀態的不一樣而發生狀態轉移,也即所謂 REST, java 框架資源 www.1b23.com 。前端
簡單地來講REST它是一種使用URL來定位資源,使用HTTP請求描述操做的Web服務規範。REST主要包括如下幾方面:html5
(1) REST是一組架構約束條件和原則,而知足這些約束條件和原則的應用程序就是RESTful。
(2)REST的目標是構建可擴展的Web Service,它是一種更簡單的SOAP(Simple Object Access Protocol)協議以及以WSDL爲基礎的WebService的替代。
(3)REST採用的是HTTP協議並經過HTTP中的GET、POST、PUT、DELETE等動詞收發數據。
(4) REST但願經過HTTP來完成對數據的元操做,即傳統的CRUD(Create、Read、Update、Delete)分別對應GET、POST、PUT、DELETE,這樣就統一了數據操做的接口,實如今不一樣平臺上提供一套相同的服務。
(5) REST是一種面向服務的、分佈式的API設計風格。java
RESTful API的開發和使用,無非是客戶端向服務器發請求(request),以及服務器對客戶端請求的響應(response)。因此RESTful架構風格具備統一接口的特色,即:使用不一樣的http方法表達不一樣的行爲:android
GET(SELECT):從服務器取出資源(一項或多項)
POST(CREATE):在服務器新建一個資源
PUT(UPDATE):在服務器更新資源(客戶端提供完整資源數據)
PATCH(UPDATE):在服務器更新資源(客戶端提供須要修改的資源數據)
DELETE(DELETE):從服務器刪除資源ios