前后端分離是什么漫萄?為什么要前后端分離舌厨?
就是把數(shù)據(jù)和頁(yè)面分離開(kāi)浴鸿,后端不提供頁(yè)面井氢,只是純粹的通過(guò) Web API 來(lái)提供數(shù)據(jù)和業(yè)務(wù)交互能力,Web 前端就是純粹的客戶端角色岳链,與 WinForm花竞、移動(dòng)終端應(yīng)用屬于同樣的角色,可以把它們合在一起宠页,統(tǒng)稱為前端左胞,分離開(kāi)了后,后端不再考慮頁(yè)面如何美化举户,前段也不需要了解后端采用的是什么樣的技術(shù)實(shí)現(xiàn)方案烤宙,使得前后端的開(kāi)發(fā)人員能夠更加專注于自身業(yè)務(wù)的開(kāi)發(fā)。
前后端分離圖解
以前的一體式 Web 架構(gòu)示意
現(xiàn)在的前后端分離構(gòu)架示意圖
前后端分離主要技術(shù)切入點(diǎn)(重要)
前后端分離后俭嘁,會(huì)出現(xiàn)以前web一體式構(gòu)架中沒(méi)有出現(xiàn)過(guò)得問(wèn)題躺枕,比如認(rèn)證,會(huì)話機(jī)制供填,簽名驗(yàn)證等拐云,
既然是做對(duì)外的api接口,當(dāng)然安全問(wèn)題是我們需要認(rèn)真考慮的問(wèn)題了近她,那么webapi會(huì)存在那些安全隱患呢叉瘩?
- 請(qǐng)求來(lái)源(身份)是否合法?
- 請(qǐng)求參數(shù)被篡改粘捎?
- 請(qǐng)求的唯一性(不可復(fù)制)薇缅,防止請(qǐng)求被惡意攻擊
處理這些安全隱患可以采用token+signature認(rèn)證的方式危彩;原理是:(1)做一個(gè)認(rèn)證服務(wù),提供一個(gè)認(rèn)證的webapi泳桦,用戶先訪問(wèn)它獲取對(duì)應(yīng)的token汤徽;(2)用戶拿著相應(yīng)的token以及請(qǐng)求的參數(shù)和服務(wù)器端提供的簽名算法計(jì)算出簽名后再去訪問(wèn)指定的api;(3)服務(wù)器端每次接收到請(qǐng)求就獲取對(duì)應(yīng)用戶的token和請(qǐng)求參數(shù)灸撰,服務(wù)器端再次計(jì)算簽名和客戶端簽名做對(duì)比谒府,如果驗(yàn)證通過(guò)則正常訪問(wèn)相應(yīng)的api,驗(yàn)證失敗則返回具體的失敗信息