深入理解b/s與c/s架構
閱讀目錄
其實b/s架構是屬於後台方面的東西,不過作為乙個前端,也是需要了解一下滴
c/s架構簡要介紹
在了解什麼是b/s架構之前,我們有必要了解一下什麼是c/s架構:
c/s架構是第一種比較早的軟體架構,主要用於區域網內。也叫 客戶機/伺服器模式。
它可以分為客戶機和伺服器兩層:第一層是在客戶機系統上結合了介面顯示與業務邏輯,第二層是通過網路結合了資料庫伺服器。
簡單的說就是第一層是使用者表示層,第二層是資料庫層。
這裡需要補充的是,客戶端不僅僅是一些簡單的操作,它也是會處理一些運算,業務邏輯的處理等。也就是說,客戶端也做著一些本該由伺服器來做的一些事情
如圖所示:
c/s架構的優點:
1 c/s架構的介面和操作可以很豐富。(客戶端操作介面可以隨意排列,滿足客戶的需要)
2 安全效能可以很容易保證。(因為只有兩層的傳輸,而不是中間有很多層。
c/s架構的缺點:
可以將qq作為模擬:
1 適用面窄,通常用於區域網中。
2 使用者群固定。由於程式需要安裝才可使用,因此不適合面向一些不可知的使用者。
3 維護成本高,發生一次公升級,則所有客戶端的程式都需要改變。
什麼是b/s架構
b/s架構的全稱為browser/server,即瀏覽器/伺服器結構。
browser指的是web瀏覽器,極少數事務邏輯在前端實現,但主要事務邏輯在伺服器端實現。
b/s架構的系統無須特別安裝,只有web瀏覽器即可。
其實就是我們前端現在做的一些事情,大部分的邏輯交給後台來實現,我們前端大部分是做一些資料渲染,請求等比較少的邏輯。
b/s架構的分層:
與c/s架構只有兩層不同的是,b/s架構有三層,分別為:
第一層表現層:主要完成使用者和後台的互動及最終查詢結果的輸出功能。
第二層邏輯層:主要是利用伺服器完成客戶端的應用邏輯功能。
第三層資料層:主要是接受客戶端請求後獨立進行各種運算。
如圖所示:
b/s架構的優點:
b/s架構的缺點:
1、在跨瀏覽器上,bs架構不盡如人意。
2、表現要達到cs程式的程度需要花費不少精力。
3、在速度和安全性上需要花費巨大的設計成本,這是bs架構的最大問題。
4、客戶端伺服器端的互動是請求-響應模式,通常需要重新整理頁面,這並不是客戶樂意看到的。(在ajax風行後此問題得到了一定程度的緩解)
b/s架構的幾種形式
第一種:客戶端-伺服器-資料庫
這個應該是我們平時比較常用的一種模式:
1、客戶端向伺服器發起http請求
2、伺服器中的web服務層能夠處理http請求
3、伺服器中的應用層部分呼叫業務邏輯,呼叫業務邏輯上的方法
4、如果有必要,伺服器會和資料庫進行資料交換. 然後將模版+資料渲染成最終的html, 返送給客戶端
第二種:客戶端-web伺服器-應用伺服器-資料庫
類似於第一種方法,只是將web服務和應用服務解耦
1 客戶端向web伺服器發起http請求
2 web服務能夠處理http請求,並且呼叫應用伺服器暴露在外的restful介面
3 應用伺服器的restful介面被呼叫,會執行對應的暴露方法.如果有必要和資料庫進行資料互動,應用伺服器會和資料庫進行互動後,將json資料返回給web伺服器
4 web伺服器將模版+資料組合渲染成html返回給客戶端
第三種方法:客戶端-負載均衡器(nginx)-中間伺服器(node)-應用伺服器-資料庫
這種模式一般用在有大量的使用者,高併發的應用中。
1、整正暴露在外的不是真正web伺服器的位址,而是負載均衡器器的位址
2、客戶向負載均衡器發起http請求
3、負載均衡器能夠將客戶端的http請求均勻的**給node伺服器集群
4、node伺服器接收到http請求之後,能夠對其進行解析,並且能夠呼叫應用伺服器暴露在外的restful介面
5、應用伺服器的restful介面被呼叫,會執行對應的暴露方法.如果有必要和資料庫進行資料互動,應用伺服器會和資料庫進行互動後,將json資料返回給node
6、node層將模版+資料組合渲染成html返回反向**伺服器
7、反向**伺服器將對應html返回給客戶端
nginx的優點有:
1、它能夠承受、高併發的大量的請求,然後將這些請求均勻的**給內部的伺服器,分攤壓力.
2、反向**能夠解決跨域引起的問題,因為nginx,node,應用伺服器,資料庫都處於內網段中。
3、nginx非常擅長處理靜態資源(img,css,js,video),所以也經常作為靜態資源伺服器,也就是我們平時所說的cdn
比如:前乙個使用者訪問index.html, 經過nginx-node-應用伺服器-資料庫鏈路之後,nginx會把index.html返回給使用者,並且會把index.html快取在nginx上,
下乙個使用者再想請求index.html的時候,請求nginx伺服器,nginx發現有index.html的快取,於是就不用去請求node層了,會直接將快取的頁面(如果沒過期的話)返回給使用者。
發展前景
1、 c/s和b/s各有優勢,c/s在圖形的表現能力上以及執行的速度上肯定是強於b/s模式的,不過缺點就是他需要執行專門的客戶端,而且更重要的是它不能跨平台,用c++在windows下寫的程式肯定是不能在linux下跑的。
2、b/s模式就,它不需要專門的客戶端,只要瀏覽器,而瀏覽器是隨作業系統就有的,方便就是他的優勢了。
而且,b/s是基於網頁語言的、與作業系統無關,所以跨平台也是它的優勢,而且以後隨著網頁語言以及瀏覽器的進步,
b/s在表現能力上的處理以及執行的速度上會越來越快,它的缺點將會越來越少。尤其是html5的普及,在圖形的渲染方面以及音訊、檔案的處理上已經非常強大了。
不過,c/s架構也有著不可替代的作用。
深入理解C S和B S模式
b s模式 browser server,採用的是瀏覽器 伺服器模式。c s模式 client server,採用的是客戶端 伺服器模式。c s模式主要由客戶端應用程式 client 伺服器管理程式 server 和中介軟體 middleware 三個部件組成。客戶應用程式是系統中使用者與資料進行互...
CS架構與BS架構
cs架構 c s client server 基於客戶端 伺服器 cs架構的優點就是基於客戶機和伺服器模式,大部分的運算是在客戶機上執行,從而提高一定的效率,但是也因為他在客戶機上執行,所以要安裝客戶端,也導致了軟體維護和公升級時的不方便,需要程式設計師親自進行公升級配置。舉例 qq聊天軟體。以及眾...
C S和B S 架構簡單理解
c s 是client server,即客戶端 伺服器端架構,一種典型的兩層架構。客戶端包含乙個或多個在使用者的電腦上執行的程式 伺服器端有兩種,一種是資料庫伺服器端,客戶端通過資料庫連線訪問伺服器端的資料 另一種是 socket伺服器端,伺服器端的程式通過socket與客戶端程式通訊 因為客戶端 ...