前后端分離如何實現以及分離后的優勢?


一、前后端分離

  •   前后端分離的核心思想:前端Html頁面通過Ajax調用后端的RestFul API並使用Json數據進行交互。
  •   通過Tomcat+Ngnix(也可以中間有個Node.js),有效地進行解耦。並且前后端分離會為以后的大型分布式架構、彈性計算架構、微服務架構、多端化服務(多種客戶端,例如:瀏覽器,車載終端,安卓,IOS等等)打下堅實的基礎。

  (注:【在互聯網架構中,web服務器:一般指像nginx,apache這類的服務器,他們一般只能解析靜態資源。應用服務器:一般指像tomcat,

jetty,resin這類的服務器可以解析動態資源也可以解析靜態資源,但解析靜態資源的能力沒有web服務器好。】

二、為什么要進行前后端分離

  一般公司后端開發人員直接兼顧前端的工作,一邊實現API接口,一邊開發頁面,兩者互相切換着做,而且根據不同的url動態拼接頁面,這也導致后台的開發壓力大大增加。前后端工作分配不均。不僅僅開發效率慢,而且代碼難以維護。

而前后端分離的話,則可以很好的解決前后端分工不均的問題,將更多的交互邏輯分配給前端來處理,而后端則可以專注於其本職工作,比如提供API接口,進行權限控制以及進行運算工作。而前端開發人員則可以利用nodejs來搭建自己的本地服務器,直接在本地開發,然后通過一些插件來將api請求轉發到后台,這樣就可以完全模擬線上的場景,並且與后台解耦。前端可以獨立完成與用戶交互的整一個過程,兩者都可以同時開工,不互相依賴,開發效率更快,而且分工比較均衡。

三、前后端分離后的優勢

  1. 可以實現真正的前后端解耦,前端服務器使用nginx。
  2. 發現bug,可以快速定位是誰的問題,不會出現互相踢皮球的現象。
  3. 在大並發情況下,我可以同時水平擴展前后端服務器,比如淘寶的一個首頁就需要2000+台前端服務器做集群來抗住日均多少億+的日均pv。
  4. 減少后端服務器的並發/負載壓力。(除了接口以外的其他所有http請求全部轉移到前端nginx上,接口的請求調用tomcat,參考nginx反向代理tomcat。)
  5. 即使后端服務暫時超時或者宕機了,前端頁面也會正常訪問,只不過數據刷不出來而已。
  6. 也許你也需要有微信相關的輕應用,那樣你的接口完全可以共用,如果也有app相關的服務,那么只要通過一些代碼重構,也可以大量復用接口,提升效率。(多端應用)
  7. 頁面顯示的東西再多也不怕,因為是異步加載。
  8. nginx支持頁面熱部署,不用重啟服務器,前端升級更無縫。
  9. 增加代碼的維護性&易讀性(前后端耦在一起的代碼讀起來相當費勁)。
  10. 提升開發效率,因為可以前后端並行開發,而不是像以前的強依賴。
  11. 在nginx中部署證書,外網使用https訪問,並且只開放443和80端口,其他端口一律關閉(防止黑客端口掃描),內網使用http,性能和安全都有保障。
  12. 前端大量的組件代碼得以復用,組件化,提升開發效率,抽出來!
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM