-
當(dāng)前位置:首頁(yè) > 創(chuàng)意學(xué)院 > 營(yíng)銷(xiāo)推廣 > 專(zhuān)題列表 > 正文
什么是前后端分離項(xiàng)目
大家好!今天讓創(chuàng)意嶺的小編來(lái)大家介紹下關(guān)于什么是前后端分離項(xiàng)目的問(wèn)題,以下是小編對(duì)此問(wèn)題的歸納整理,讓我們一起來(lái)看看吧。
開(kāi)始之前先推薦一個(gè)非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對(duì)話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫(xiě)出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁(yè)版、PC客戶(hù)端
官網(wǎng):https://ai.de1919.com
本文目錄:
一、Web項(xiàng)目開(kāi)發(fā)為何要走前后端分離模式?
如果是問(wèn)“什么是正確的前后端分離”,我還真不敢回答,生怕自己的理解有什么偏差;但是問(wèn)怎么“理解前后端分離”,那我可以結(jié)合自身的工作,談?wù)勎覍?duì)前后端分離的理解,也歡迎大家提出不同的理解。
我07年參加工作就是做企業(yè)級(jí)項(xiàng)目的開(kāi)發(fā),那時(shí)候的一些項(xiàng)目都只有一個(gè)包,沒(méi)有什么代碼規(guī)范,業(yè)務(wù)邏輯散落在各處,甚至是JSP中直接訪問(wèn)數(shù)據(jù)庫(kù)并做業(yè)務(wù)處理。
后來(lái)逐漸有了一些規(guī)范,頁(yè)面就是頁(yè)面,代碼就是代碼,很多項(xiàng)目開(kāi)始使用Ajax框架。
發(fā)展的更進(jìn)一步,后端代碼有了分層,cotroller/service/dao,可能每個(gè)項(xiàng)目分層策略不同(三層和兩層居多),每層的叫法不同(cotroller還是action),數(shù)據(jù)從頁(yè)面到最后訪問(wèn)數(shù)據(jù)庫(kù),需要走到多個(gè)分層中。
不過(guò)到了此階段,在企業(yè)級(jí)項(xiàng)目的開(kāi)發(fā)過(guò)程中,Java程序員依然要兼顧前后端的開(kāi)發(fā),所以前端頁(yè)面的樣子嘛,達(dá)不到美觀的程度,也就是能用。
前后端分離有很多的好處:前端開(kāi)發(fā)和后端開(kāi)發(fā)可以各司其職,約定好接口之后就可以并行開(kāi)發(fā);后端接口可以復(fù)用,如果項(xiàng)目同時(shí)有電腦網(wǎng)頁(yè)端、移動(dòng)網(wǎng)頁(yè)端、APP端等多個(gè)入口的時(shí)候,后端可以只有一個(gè);
帶來(lái)好處的同時(shí),也會(huì)有一些缺點(diǎn),例如:增加了架構(gòu)的復(fù)雜性,如果技術(shù)能力不足的團(tuán)隊(duì),可以考慮半分離(例如我們部門(mén)都是企業(yè)級(jí)應(yīng)用,都沒(méi)有前端開(kāi)發(fā)人員);如果是面向互聯(lián)網(wǎng)的應(yīng)用,需要搜索引擎抓取,就需要服務(wù)器端渲染;另外前后端交互的接口,也需要花時(shí)間和精力設(shè)計(jì)。
二、分布式開(kāi)發(fā),和前后端分離是一個(gè)意思嗎?舉個(gè)例子,系統(tǒng)a中有業(yè)務(wù)層和dao層,系統(tǒng)b中有前端頁(yè)面和控制層
首先簡(jiǎn)單說(shuō)一下:前后端分離就是前端頁(yè)面只有前端代碼,后端只負(fù)責(zé)出接口和數(shù)據(jù)庫(kù)。前后端分離的好處就是維護(hù)方便,代碼清晰,例如,現(xiàn)在有一個(gè)官方網(wǎng)站,那么前端要寫(xiě)的就是一個(gè)管理后臺(tái)和前端頁(yè)面,后端php(這里只是舉例,其他語(yǔ)言的也是一樣),需要做的是通過(guò)php寫(xiě)出數(shù)據(jù)接口,然后前端只需要通過(guò)接口來(lái)發(fā)送和返回?cái)?shù)據(jù)。然后上線的時(shí)候前端只需要把前端代碼打包上傳到服務(wù)器就可以了,混合開(kāi)發(fā)像java和jsp,它們是前端代碼和后端代碼一起寫(xiě)的,需要把代碼一起打包上傳到服務(wù)器
三、互聯(lián)網(wǎng)項(xiàng)目為什么要前后端分離,有什么優(yōu)缺點(diǎn)?
前端承擔(dān)營(yíng)運(yùn),后端承擔(dān)管理。功能不一樣沒(méi)有什么優(yōu)缺點(diǎn)。
四、前后端分離項(xiàng)目——登錄Token校驗(yàn)思路
對(duì)token的校驗(yàn)分為前端和后端
前端: Vue-Cli 2.x + axios
后端:SpringBoot 2.3.4
這里的話,userToken和userId放到sessionStorage是關(guān)鍵步驟
后端主要是使用攔截器來(lái)進(jìn)行請(qǐng)求的攔截和校驗(yàn)
解釋一下思路:
這里的話,針對(duì)需要攔截的路徑和需要放行的路徑進(jìn)行配置就行
關(guān)于redisTemple的引入這里就不再贅述。
到這里為止,前后端的token就都做完了,后面就再講講前端的一些其他思路吧
對(duì)于登錄狀態(tài)的判斷,前端可以在router.foreach上對(duì)路由進(jìn)行狀態(tài)判定,從而實(shí)現(xiàn)頁(yè)面程度的攔截(具體可以參考最后的參考文章2)
在使用攔截器后,會(huì)發(fā)現(xiàn)前端部分請(qǐng)求會(huì)無(wú)法正常到達(dá)后端,百度后發(fā)現(xiàn)是因?yàn)?axios發(fā)送正式請(qǐng)求前會(huì)先發(fā)送一個(gè)嗅探請(qǐng)求 ,而嗅探請(qǐng)求是不攜帶我們封裝的header的,所以會(huì)導(dǎo)致部分請(qǐng)求會(huì)無(wú)法成功,解決的方式有很多種,這里的話是選擇了在后端去直接處理
參考文章
1、SpringBoot加了攔截器后出現(xiàn)的跨域問(wèn)題解析
https://blog.csdn.net/mrkorbin/article/details/104066979
2、Vue項(xiàng)目中實(shí)現(xiàn)用戶(hù)登錄及token驗(yàn)證
https://www.cnblogs.com/web-record/p/9876916.html
以上就是關(guān)于什么是前后端分離項(xiàng)目相關(guān)問(wèn)題的回答。希望能幫到你,如有更多相關(guān)問(wèn)題,您也可以聯(lián)系我們的客服進(jìn)行咨詢(xún),客服也會(huì)為您講解更多精彩的知識(shí)和內(nèi)容。
推薦閱讀:
互聯(lián)網(wǎng)廣告投放是做什么的(互聯(lián)網(wǎng)廣告投放是做什么的呢)
品牌策劃營(yíng)銷(xiāo)有什么職位(品牌策劃營(yíng)銷(xiāo)有什么職位嗎)
問(wèn)大家
濟(jì)南千佛山相親大會(huì),什么時(shí)間舉辦?什么時(shí)候報(bào)名?怎么報(bào)名???
漳浦值得選擇的小程序開(kāi)發(fā)運(yùn)營(yíng)目前什么價(jià)格?路過(guò)的大仙們幫幫我
濟(jì)南相親會(huì),哪里有呢?濟(jì)南千佛山相親會(huì) 什么時(shí)間舉辦呢?
揚(yáng)州熱門(mén)的小程序開(kāi)發(fā)運(yùn)營(yíng)正規(guī)什么價(jià)格?麻煩回答一下
房山展會(huì)派傳單有什么要注意的嗎?在座的童鞋們問(wèn)一下哈
密云奠基儀式會(huì)場(chǎng)布置有什么行業(yè)秘籍?幫個(gè)忙在線的朋友
山東濟(jì)南有哪些比較靠譜的單身找對(duì)象交友平臺(tái)?哪家口碑好?