前後端分離筆記(動態的請求都通過ajax進行)

1 什麼是前後端分離

這裏的前後端分離, 定義爲網頁的動態內容都通過ajax等異步的方式進行。

關於前後端分離常見的另一種含義:前端完全負責view層和controller層。 見另一篇筆記:https://blog.csdn.net/qq_19768163/article/details/93998521

 

2 爲什麼要前後端分離

前端和後端職責分離

前端偏向於處理用戶體驗相關的方面, 後端服務則偏業務邏輯。

前後端技術分離

前端只需要懂HTML/JS/CSS就可以了, 後端也不需要去了解前端技術。

 

上面兩點是在前後端有不同人員開發的情況下才有的好處, 下面兩點是無論有沒有獨立的前後端開發人員都有的好處

前後端分離帶來了用戶體驗和業務邏輯的解耦

前後端都可以獨立變更, 只要保持調用的接口不變。

複用

同一套接口, 可以複用在app端, web端等。

3 怎麼進行前後端分離(方案)

3.1 部署方案

部署方案按照是否部署在相同的域, 可以分爲兩種方式, 同源部署和非同源部署

同源部署

同源是指前端項目和後端項目部署的域名和端口都一致的情況, 我知道的有兩種方式:

  • 前段項目和後端項目都不熟在Nginx將請求分別轉發到靜態服務器和動態服務器;
  • 前端項目部署在後端項目中, 比如部署到servlet應用的webroot下;

這種方式的好處是, 用戶認證的方式依然可以使用基於session/cookie的方式來進行。

非同源部署

指前端項目和後端項目使用不同的域名部署。 需要進行跨域相關的配置, 但是這種方式無法很方便的使用session/cookie的方式來進行用戶認證, 替代的方案有JWT等。

3.2 用戶認證

基於cookie/session的認證

只要保證前端和後端部署在同一個域下, 那麼就可以沿用session/cookie的認證機制。

基於Token/JWT的認證

jwt, 全稱是json web token, 是一種將用戶信息都編碼到一個token中, 然後每次請求都帶上這個token。 這種情況下, 後端是完全無狀態的。

基於OAuth的認證方案

3.3 mock方案

如果使用前後端分離的模式, 那麼可以將開發節點劃分爲接口定義, 開發, 聯調三個階段。 可以使用mock的方案, 在定義完成之後, 前端使用mock的接口服務進行開發, 不需要等待後端開發完成之後才進行開發。

3.4 測試方案

服務端的測試, 可以有單元測試和web接口測試。 而前端進行測試則是集成測試和用戶體驗測試。

其中服務端的測試其實是可以做到自動化的, 例如使用spring 相關的測試支持工具。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章