對於前後端分離的應用場景,不是所有的場景都適合,但是大多數專案都能夠通過前後端分離來實現。
大多數後台應用我們可以做成spa應用(單頁應用),而單頁應用最主要的特點就是區域性重新整理,這通過前端控制路由呼叫ajax,後台提供介面便可以實現。
這樣的方式使用者體驗更好,網頁載入速度更快,開發和維護成本也降低了不少,效率明顯提公升。
隨著前端技術的發展和迭代,前端mvc框架應運而生,利用目前主流的前端框架,如react,vue可以輕鬆構建起乙個無需伺服器端渲染就可以展示的**,同樣這類框架都提供了前端路由功能,後台可以不再控制路由的跳轉,將原本屬於前端的業務邏輯全部丟給前端。
1.互動形式:
瀏覽器 《—restful—》伺服器
在前後端分離架構中,後端只需要負責按照約定的資料格式向前端提供可呼叫的api服務即可。前後端之間通過http請求來進行互動,前端獲取到資料後,進行頁面的組裝和渲染,最終返回給瀏覽器。
2.**組織形式,就是前後端**庫分離,前端**中有可以進行mock測試(通過構造虛擬測試物件以簡化測試環境的方法)的偽後端,能支援前端的獨立開發和測試。而後端**中除了功能實現外,還有著詳細的測試用例,以保證api的可用性,降低整合風險。
3.前後端分離之後,開發流程是:
提出需求,設計介面約定資料,前後端並行開發,前後端整合,前端調整頁面,整合成功,交付上線
4.資料介面規範流程
rest表示表現層狀態轉化。如果乙個架構符合rest原則,就稱它為restful架構。
資源:是網路上的乙個實體,或者是網路上的乙個具體資訊,可以用乙個uri來指向它,每種資源對應乙個特定的uri。
表現層資源是一種資訊實體,它可以有多種外在表現形式。我們把資源具體呈現出來的形式,叫做它的表現層
而uri只是代表資源的位置,它的具體表現形式,應該在http請求的頭資訊中用accept和content-type欄位指定,這兩個欄位才是對表現層的描述。
狀態轉化
訪問乙個**,就代表了客戶端和伺服器端的乙個互動過程,在這個過程中,勢必涉及到資料和狀態的變化。
如果客戶端想要操作伺服器,必須通過某種手段,讓伺服器發生「狀態轉化」,而這種轉化就是建立在表現層之上的,所以就是「表現層狀態轉化」。
常見的手段有:get,post,put,delete
注意(1)rest本身並不實用,實用的是如何設計restful api(rest風格的網路介面)
server提供的restful api 中,url只使用名詞來指定資源,原則上不使用動詞。
(2)用http協議中的動詞來實現資源的新增,修改,刪除等操作,即通過http動詞來實現資源的狀態扭轉。
(3)server和client之間傳遞某資源的乙個表現形式,比如json,xml傳輸文字,或者用jpg,webp傳輸,當然還可以壓縮http傳輸時的資料
(4)用http狀態碼來傳遞server的狀態資訊。
前後端分離
關於前後端分離的一些好的文章推薦 前端框架 為什麼前後端分離 最直白的理解,我認為是因為在開發過程中,前端總是需要等待後端的環境搭建好之後,前端才能獲取相關資料,對於前端的開發影響很大,事實上前端並不關心後端的開發,那麼有沒有方法不讓後端影響前端的開發呢?其實後端提供的是什麼?乙個執行伺服器,乙個就...
前後端分離
在此說明 前後端分離有利於後端的快速開發,但並不利於搜尋引擎優化 seo 上圖能清晰的看到,使用前後端分離模式進行開發,瀏覽器會向伺服器傳送請求,伺服器會向瀏覽器傳送乙個類似框架的html,是固定的空殼,此時瀏覽器再使用ajax請求向後端伺服器索要資料,後端伺服器返回json字串給瀏覽器,從而使瀏覽...
前後端分離
前後端分離的好處 1 徹底解放前端 2 提高工作效率,分工更加明確。3 區域性效能提公升 4 降低維護成本 2 前後端分離的概念 後台只需要提供api介面,前端呼叫ajax實現資料呈現 3 場景和要求 4 web前端路由 就是根據url分配到對應的處理程式,原理和路由器原理相同,不同的請求位址會交給...