HOME 首頁
SERVICE 服務(wù)產(chǎn)品
XINMEITI 新媒體代運(yùn)營
CASE 服務(wù)案例
NEWS 熱點(diǎn)資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    如何實(shí)現(xiàn)前后端分離(如何實(shí)現(xiàn)前后端分離vue)

    發(fā)布時(shí)間:2023-03-18 13:57:44     稿源: 創(chuàng)意嶺    閱讀: 1484        問大家

    大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于如何實(shí)現(xiàn)前后端分離的問題,以下是小編對(duì)此問題的歸納整理,讓我們一起來看看吧。

    開始之前先推薦一個(gè)非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對(duì)話答疑等等

    只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁版、PC客戶端

    官網(wǎng):https://ai.de1919.com

    本文目錄:

    如何實(shí)現(xiàn)前后端分離(如何實(shí)現(xiàn)前后端分離vue)

    一、前后端分離的項(xiàng)目如何實(shí)現(xiàn)登錄狀態(tài)的保持。

    前后端分離的項(xiàng)目一般會(huì)使用token實(shí)現(xiàn)登錄狀態(tài)的保持。 token其實(shí)就是一個(gè)隨機(jī)字符串,當(dāng)用戶在登錄頁面輸入賬號(hào)和密碼后,前端將賬號(hào)密碼發(fā)送給后端,后端檢驗(yàn)完賬號(hào)和密碼后,會(huì)生成一個(gè)隨機(jī)不重復(fù)的字符串即(token),并將其響應(yīng)給前端,前端拿到token后,需要在客戶端進(jìn)行持久化存儲(chǔ)(一般會(huì)寫在localStorage或者sessionStorage中,如果是SPA會(huì)存儲(chǔ)在sessionStorage中,如果是MPA則存儲(chǔ)在localStorage中),那么下次在向后端數(shù)據(jù)接口發(fā)送請(qǐng)求的時(shí)候,一般需要將token一并發(fā)送給后端數(shù)據(jù)接口,后端數(shù)據(jù)接口會(huì)對(duì)token進(jìn)行校驗(yàn),如果合法則正常響應(yīng)請(qǐng)求,如果不合法,則提示未登錄。 前端則根據(jù)本地存儲(chǔ)中是否存在token判斷用戶是否處于登錄狀態(tài)。

    二、基于Docker-Compose 部署前后端分離單體項(xiàng)目(一)

    1.單體項(xiàng)目是否需要采用docker進(jìn)行部署?

    2.如果采用docker部署是否有必要采用docker-compose進(jìn)行服務(wù)編排?

    答案是也許有必要,也許沒必要,docker的優(yōu)勢(shì)很多,但是對(duì)于垂直架構(gòu)的項(xiàng)目優(yōu)勢(shì)未必那么明顯,總之一句你需要根據(jù)自己的項(xiàng)目情況去考慮。筆者之所以會(huì)寫這篇文章,大概率是基于省事的目的去部署一些小的項(xiàng)目。同時(shí)也是提供一種前后端分離的項(xiàng)目的部署方案(但絕對(duì)不是最有方案),以及在這種模式下的docker如何去工作才能達(dá)到我們的目的。

    然而最終的目的是為了偷懶,省事。讓前后端分離項(xiàng)目的部署方式變的簡單。就也許在這種模式下,你只需要5分鐘就可以實(shí)現(xiàn)部署,或許吧,不妨把這個(gè)當(dāng)作一個(gè)目標(biāo)。

    本文目標(biāo):

    上圖將部署流程分為三部分,本地開發(fā)環(huán)境,阿里云容器鏡像服務(wù),以及l(fā)inux服務(wù)器。下面分成三個(gè)部分對(duì)上圖進(jìn)行說明,工欲善其事,必先利其器。先進(jìn)行說明,后面才能對(duì)每部分做的工作比較清晰。

    本地開發(fā)環(huán)境分成三個(gè)項(xiàng)目

    先解釋一下圖中的相關(guān)名詞

    容器鏡像服務(wù),分門別類的存儲(chǔ)我們的鏡像 。這個(gè)是鏡像服務(wù)的唯一用途,就相當(dāng)于maven的倉庫是一樣的。

    我們也可以搭建自己的私服倉庫,例如開源的harbor等,都非常好用,在企業(yè)中用私服會(huì)比較多。

    首先我們需要在linux服務(wù)器上搭建Docker環(huán)境,也就是我們?cè)趌inux上有一個(gè)docker。再將我們的鏡像運(yùn)行在docker上。

    從上圖我們發(fā)現(xiàn)在docker上運(yùn)行這很多容器,mysql,redis,nginx,pitaya-java,pitaya-admin,pitaya-h5.

    然而我們的容器是需要通信的,例如:大家都知道pitaya-java是一個(gè)springboot的項(xiàng)目,他需要訪問mysql進(jìn)行數(shù)據(jù)存儲(chǔ)服務(wù),需要訪問redis緩存我們的令牌信息等。

    也就是說,我們運(yùn)行的這些容器之間是要相互能通信的。所以我們?cè)赿ocker上創(chuàng)建了一個(gè)內(nèi)部網(wǎng)絡(luò)叫做pitaya-network,他在172.2.0.0這個(gè)網(wǎng)段,我們需要我們的容器都加入pitaya-network這個(gè)網(wǎng)絡(luò),并且分配固定的IP地址,指定固定端口。

    為什么需要分配固定IP地址,指定固定端口? 因?yàn)槲覀兊娜萜饕部赡軙?huì)和服務(wù)器一樣,會(huì)掛掉,如果隨機(jī)分配的話,創(chuàng)建新的容器,IP地址可能會(huì)變,我們?nèi)萜鏖g不能通信,例如java服務(wù)訪問不了mysql,這樣我們的線上就無法提供客戶正常服務(wù)了。

    本文我們做一個(gè)大概的概述,針對(duì)上面的結(jié)構(gòu)以下問題是我們急需解決的?

    其實(shí)針對(duì)java項(xiàng)目和vue項(xiàng)目制作鏡像方式不同,但是原理一樣,原理無非就是基于docker build這個(gè)命令制作鏡像,但是java的鏡像制作和推送可能更加簡單,只需要一條命令即可,因?yàn)閙aven提供了制作鏡像的插件。這些內(nèi)容在下一篇文章都會(huì)涉及到!

    想要表達(dá)清楚一鍵事情是非常不容易的事情,特別是通過文字,既不想廢話連篇,又想表達(dá)清楚真的很難,因?yàn)榧?xì)節(jié)比較多!然而我覺得弄清楚大方向是非常必要的,然后再進(jìn)行分解,希望能說的明白,我會(huì)加油的,如果寫的不好也希望大家原諒!

    三、jQuery如何實(shí)現(xiàn)類似JSTL的功能進(jìn)行前后端分離?

    前后端分離一般用json交互,不用el表達(dá)式(依賴頁面,過于耦合)。

    還有html不解析el表達(dá)式。換成jsp頁面導(dǎo)入jstl標(biāo)簽庫。

    四、前后端分離-跨域會(huì)話如何保持?

    因?yàn)镃ORS的出現(xiàn),大大降低了跨域的難度,另到AJAX有了更大的發(fā)揮空間,也導(dǎo)致了前后端更加容易實(shí)現(xiàn)。但是今天在實(shí)現(xiàn)前后端的時(shí)候發(fā)現(xiàn)了一個(gè)問題。 在進(jìn)行session會(huì)話管理的時(shí)候,前端無法發(fā)送cookie到后端,前端每次訪問后端都相當(dāng)于一次新的會(huì)話,這樣就導(dǎo)致登錄后的信息是無法保存的??蛻舳嗣恳淮卧L問都需要重新登錄。

    對(duì)于前端來說,seesion字段是存在cookie中的。在跨域過程中,Cookie是默認(rèn)不發(fā)送的。就算后端返回set-Cookie字段,前端也不會(huì)保存Cookie,更不會(huì)在下一次訪問的時(shí)候發(fā)送到后端了。

    因此只要前端可以把cookie發(fā)送到后端,后端就可以根據(jù)cookie拿到seeion字段進(jìn)行會(huì)話驗(yàn)證。

    進(jìn)過重新對(duì)CORS的學(xué)習(xí),只要通過3步,就可以讓會(huì)話保持。

    在ajax中設(shè)置,withCredentials: true。

    例如:

    服務(wù)端的 Access-Control-Allow-Origin 不可以設(shè)置為"*",必須指定明確的、與請(qǐng)求網(wǎng)頁一致的域名

    服務(wù)端的 Access-Control-Allow-Credentials: true ,代表服務(wù)器接受Cookie和HTTP認(rèn)證信息。因?yàn)樵贑ORS下,是默認(rèn)不接受的。

    PS:

    web.xml

    以上就是關(guān)于如何實(shí)現(xiàn)前后端分離相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會(huì)為您講解更多精彩的知識(shí)和內(nèi)容。


    推薦閱讀:

    如何在小紅書評(píng)論掛鏈接(小紅書評(píng)論怎么發(fā)鏈接)

    如何做營銷運(yùn)營外包團(tuán)隊(duì)(如何做營銷運(yùn)營外包團(tuán)隊(duì))

    如何在小紅書賣東西(如何在小紅書賣東西的-)

    校園景觀設(shè)計(jì)展板(校園景觀設(shè)計(jì)展板圖片)

    一套完整的vi設(shè)計(jì)包括哪些內(nèi)容_1