作為前端需要瞭解的B/S架構

來源:互聯網
上載者:User

標籤:web服務   邏輯   htm   ++   使用者   sig   c++   server   html   

其實B/S架構是屬於後台方面的東西,不過作為一個前端,也是需要瞭解一下滴

C/S架構簡要介紹

 

在瞭解什麼是B/S架構之前,我們有必要瞭解一下什麼是C/S架構:

    C/S架構是第一種比較早的軟體架構,主要用於區域網路內。也叫 客戶機/伺服器模式。

    它可以分為客戶機和伺服器兩層:第一層是在客戶機系統上結合了介面顯示與商務邏輯,第二層是通過網路結合了資料庫伺服器。

    簡單的說就是第一層是使用者展示層,第二層是資料庫層。

  這裡需要補充的是,用戶端不僅僅是一些簡單的操作,它也是會處理一些運算,商務邏輯的處理等。也就是說,用戶端也做著一些本該由伺服器來做的一些事情

 

C/S架構軟體有一個特點,就是如果使用者要使用的話,需要下載一個用戶端,安裝後就可以使用。比如QQ,OFFICE軟體等。

 

C/S架構的優點:

1 C/S架構的介面和操作可以很豐富。(用戶端操作介面可以隨意排列,滿足客戶的需要)
2 安全效能可以很容易保證。(因為只有兩層的傳輸,而不是中間有很多層。
3 由於只有一層互動,因此響應速度較快。(直接相連,中間沒有什麼阻隔或岔路,比如QQ,每天那麼多人線上,也不覺得慢)

 

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架構的優點:

1、用戶端無需安裝,有Web瀏覽器即可。
2、BS架構可以直接放在廣域網路上,通過一定的許可權控制實現多客戶訪問的目的,互動性較強。
3、BS架構無需升級多個用戶端,升級伺服器即可。可以隨時更新版本,而無需使用者重新下載啊什麼的。

 

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返回反向 Proxy伺服器

7、反向 Proxy伺服器將對應html返回給用戶端

 

Nginx的優點有:  

1、它能夠承受、高並發的大量的請求,然後將這些請求均勻的轉寄給內部的伺服器,分攤壓力.

2、反向 Proxy能夠解決跨域引起的問題,因為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架構也有著不可替代的作用。

作為前端需要瞭解的B/S架構

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.