前后端分離是什么?為什么要前后端分離?
就是把數(shù)據(jù)和頁面分離開,后端不提供頁面,只是純粹的通過 Web API 來提供數(shù)據(jù)和業(yè)務(wù)交互能力,Web 前端就是純粹的客戶端角色,與 WinForm、移動終端應(yīng)用屬于同樣的角色,可以把它們合在一起,統(tǒng)稱為前端,分離開了后,后端不再考慮頁面如何美化,前段也不需要了解后端采用的是什么樣的技術(shù)實現(xiàn)方案,使得前后端的開發(fā)人員能夠更加專注于自身業(yè)務(wù)的開發(fā)。
前后端分離圖解

微信圖片_20180131095952.jpg
以前的一體式 Web 架構(gòu)示意

微信圖片_20180131100003.jpg
現(xiàn)在的前后端分離構(gòu)架示意圖
前后端分離主要技術(shù)切入點(重要)
前后端分離后,會出現(xiàn)以前web一體式構(gòu)架中沒有出現(xiàn)過得問題,比如認(rèn)證,會話機(jī)制,簽名驗證等,
既然是做對外的api接口,當(dāng)然安全問題是我們需要認(rèn)真考慮的問題了,那么webapi會存在那些安全隱患呢?
- 請求來源(身份)是否合法?
- 請求參數(shù)被篡改?
- 請求的唯一性(不可復(fù)制),防止請求被惡意攻擊
處理這些安全隱患可以采用token+signature認(rèn)證的方式;原理是:(1)做一個認(rèn)證服務(wù),提供一個認(rèn)證的webapi,用戶先訪問它獲取對應(yīng)的token;(2)用戶拿著相應(yīng)的token以及請求的參數(shù)和服務(wù)器端提供的簽名算法計算出簽名后再去訪問指定的api;(3)服務(wù)器端每次接收到請求就獲取對應(yīng)用戶的token和請求參數(shù),服務(wù)器端再次計算簽名和客戶端簽名做對比,如果驗證通過則正常訪問相應(yīng)的api,驗證失敗則返回具體的失敗信息