前后端分離是什么?為什么要前后端分離?
就是把數(shù)據(jù)和頁面分離開,后端不提供頁面,只是純粹的通過 Web API 來提供數(shù)據(jù)和業(yè)務交互能力,Web 前端就是純粹的客戶端角色,與 WinForm、移動終端應用屬于同樣的角色,可以把它們合在一起,統(tǒng)稱為前端,分離開了后,后端不再考慮頁面如何美化,前段也不需要了解后端采用的是什么樣的技術實現(xiàn)方案,使得前后端的開發(fā)人員能夠更加專注于自身業(yè)務的開發(fā)。
前后端分離圖解
微信圖片_20180131095952.jpg
以前的一體式 Web 架構示意
微信圖片_20180131100003.jpg
現(xiàn)在的前后端分離構架示意圖
前后端分離主要技術切入點(重要)
前后端分離后,會出現(xiàn)以前web一體式構架中沒有出現(xiàn)過得問題,比如認證,會話機制,簽名驗證等,
既然是做對外的api接口,當然安全問題是我們需要認真考慮的問題了,那么webapi會存在那些安全隱患呢?
- 請求來源(身份)是否合法?
- 請求參數(shù)被篡改?
- 請求的唯一性(不可復制),防止請求被惡意攻擊
處理這些安全隱患可以采用token+signature認證的方式;原理是:(1)做一個認證服務,提供一個認證的webapi,用戶先訪問它獲取對應的token;(2)用戶拿著相應的token以及請求的參數(shù)和服務器端提供的簽名算法計算出簽名后再去訪問指定的api;(3)服務器端每次接收到請求就獲取對應用戶的token和請求參數(shù),服務器端再次計算簽名和客戶端簽名做對比,如果驗證通過則正常訪問相應的api,驗證失敗則返回具體的失敗信息