溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

前后端分離和不分離有什么區(qū)別

發(fā)布時(shí)間:2020-12-16 10:06:51 來源:億速云 閱讀:1003 作者:小新 欄目:web開發(fā)

這篇文章主要介紹了前后端分離和不分離有什么區(qū)別,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

區(qū)別:前后端不分離中,前端頁面看到的效果都是由后端控制,由后端渲染頁面或重定向,即后端需要控制前端的展示,前端與后端的耦合度很高。前后端分離中,后端僅返回前端所需的數(shù)據(jù),不再渲染HTML頁面,不再控制前端的效果,前端與后端的耦合度相對(duì)較低。

一、前后端分離的概念

1、前后端分離

  • 前后端分離是一種架構(gòu)模式,說通俗點(diǎn)就是后端項(xiàng)目里面看不到頁面(JSP | HTML),后端給前端提供接口,前端調(diào)用后端提供的 REST 風(fēng)格接口就行,前端專注寫頁面(html|jsp)和渲染(JS|CSS|各種前端框架);后端專注寫代碼就行。

  • 前后端分離的核心:后臺(tái)提供數(shù)據(jù),前端負(fù)責(zé)顯示

1、軟件架構(gòu)模式

最熟悉MVC設(shè)計(jì)模式,Model—View-Controller 模型-視圖-控制器

  • 它是怎么工作的?通俗來說:你在頁面輸入一個(gè)網(wǎng)址(請(qǐng)求-Request),這個(gè)網(wǎng)址跑到哪里去了呢?就去調(diào)用接口
    (REST風(fēng)格),這個(gè)接口其實(shí)就是訪問后端的一段代碼(方法),后端有很多方法。

  • 如何確定訪問的是哪個(gè)方法?就是接口定義好的,比如:177.25.26.7/idp/user/login,這里面的idp就表示一
    個(gè)服務(wù)(一個(gè)工程),user表示一個(gè)類,login表示具體要調(diào)用的那個(gè)方法,你一旦回車,就直接調(diào)用了后端這個(gè)方法,后端這個(gè)方法就去數(shù)據(jù)庫MySQL|Oracle|其他)取數(shù)據(jù),數(shù)據(jù)庫表中每一行數(shù)據(jù)就表示一個(gè)對(duì)象,也就是一個(gè)JavaBean,最終用pojo方式存到集合框架 (List|Map|Set|等)中,方法把這個(gè)集合返回,那么調(diào)用這個(gè)接口的結(jié)果就是會(huì)響(Response)給你一個(gè)結(jié)果集,前端就拿到了這個(gè)數(shù)據(jù),然后通過頁面(html|Jsp)展現(xiàn)出來,這個(gè)用戶看到的就是View層做的事情。

2、前后端分離的原因

在以前,聽說 TDD (Test-driven development,測(cè)試驅(qū)動(dòng)開發(fā)) 可以改善代碼的質(zhì)量,我們便實(shí)施了 TDD;接著,聽說 BDD (Behavior-driven development,行為驅(qū)動(dòng)開發(fā)) 可以交付符合業(yè)務(wù)需求的軟件,我們便實(shí)施了 BDD;后來,聽說 DDD (Domain-driven design,領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)) 可以分離業(yè)務(wù)代碼與基礎(chǔ)代碼,我們便實(shí)施了 DDD。今天,聽說了前后端分離很流行,于是我們就實(shí)施了前后端分離——這就是傳說中的 HDD(Hype-driven Development,熱鬧驅(qū)動(dòng)開發(fā))。

過程TDD -》 BDD -》 DDD =》 HDD

3、前后端分離的優(yōu)點(diǎn)

前后端分離則可以很好的解決前后端分工不均的問題,將更多的交互邏輯分配給前端來處理,而后端則可以專注于其本職工作,比如提供API接口,進(jìn)行權(quán)限控制以及進(jìn)行運(yùn)算工作。而前端開發(fā)人員則可以利用nodejs來搭建自己的本地服務(wù)器,直接在本地開發(fā),然后通過一些插件來將api請(qǐng)求轉(zhuǎn)發(fā)到后臺(tái),這樣就可以完全模擬線上的場(chǎng)景,并且與后臺(tái)解耦。前端可以獨(dú)立完成與用戶交互的整一個(gè)過程,兩者都可以同時(shí)開工,不互相依賴,開發(fā)效率更快,而且分工比較均衡。

總結(jié)優(yōu)點(diǎn)如下:

  • 提升開發(fā)效率

  • 完美應(yīng)對(duì)復(fù)雜多變的前端需求

  • 增強(qiáng)代碼可維護(hù)性

二、前后端分離和前后端不分離的區(qū)別

1、前后端不分離

  • 在前后端不分離的應(yīng)用模式中,前端頁面看到的效果都是由后端控制,由后端渲染頁面或重定向,也就是后端需要控制前端的展示,前端與后端的耦合度很高。

  • 這種應(yīng)用模式比較適合純網(wǎng)頁應(yīng)用,但是當(dāng)后端對(duì)接App時(shí),App可能并不需要后端返回一個(gè)HTML網(wǎng)頁,而僅僅是數(shù)據(jù)本身,所以后端原本返回網(wǎng)頁的接口不再適用于前端App應(yīng)用,為了對(duì)接App后端還需再開發(fā)一套接口。

2、前后端分離

  • 在前后端分離的應(yīng)用模式中,后端僅返回前端所需的數(shù)據(jù),不再渲染HTML頁面,不再控制前端的效果。至于前端用戶看到什么效果,從后端請(qǐng)求的數(shù)據(jù)如何加載到前端中,都由前端自己決定,網(wǎng)頁有網(wǎng)頁的處理方式,AppApp的處理方式,但無論哪種前端,所需的數(shù)據(jù)基本相同,后端僅需開發(fā)一套邏輯對(duì)外提供數(shù)據(jù)即可。

  • 在前后端分離的應(yīng)用模式中 ,前端與后端的耦合度相對(duì)較低。

  • 在前后端分離的應(yīng)用模式中,我們通常將后端開發(fā)的每個(gè)視圖都稱為一個(gè)接口,或者API,前端通過訪問接口來對(duì)數(shù)據(jù)進(jìn)行增刪改查。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享前后端分離和不分離有什么區(qū)別內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,遇到問題就找億速云,詳細(xì)的解決方法等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI