1. 程式人生 > >C/S 與B/S 模型的聯絡與區別

C/S 與B/S 模型的聯絡與區別

客戶/伺服器模型(C/S)

特點:非對等相互作用,即客戶與伺服器處於不平等的地位。

表現在:伺服器用有客戶所不具備的硬體和軟體資源以及運算能力,伺服器提供服務,客
戶請求服務。  

客戶端與伺服器的數量關係

  • 多個客戶程序同時訪問一個伺服器程序(n:1)
  • 一個客戶程序同時訪問多個伺服器提供的服務(1:n ).

客戶端與伺服器的位置關係

這裡寫圖片描述

  • 客戶和伺服器執行在同一臺機器上———應用於網路應用程式開發測試。
  • 客戶和伺服器執行在同一個區域網內的不同機器上——區域網檔案共享、區域網印表機
  • 客戶和伺服器運行於廣域網不同網路內的機器上——最常見網咯應用程式。

客戶與伺服器的角色關係

  1. 應用程式作為純粹的客戶執行。——例如web瀏覽器
  2. 應用程式作為純粹的伺服器執行。——如具備基本功能的ftp伺服器
  3. 應用程式同時具備客戶和伺服器兩種角色。

有狀態和無狀態的伺服器

判斷依據:伺服器或客戶本地端是否儲存狀態資訊。
無狀態伺服器舉例:禁用cookie功能的web伺服器
有狀態伺服器舉例:網路遊戲伺服器

迴圈伺服器和併發伺服器

迴圈伺服器:通過在單執行緒內設定迴圈控制實現對多個客戶請求的逐一響應。
併發伺服器:通過使請求處理(多執行緒)和I/O部分重疊達到高效能。

迴圈伺服器和併發伺服器的選擇取決於對單個客戶請求的處理時延。
客戶較少、時延較長時考慮併發服務;客戶量大、時延較短、請求頻繁優先考慮迴圈服務。

瀏覽器/伺服器模型(B/S)

使用者通過www瀏覽器實現,一部分事務邏輯在前端(瀏覽器)實現,主要事務邏輯在服務端實現。通常以三層架構(表現層、事務邏輯層、資料處理層)部署實施。
B/S模型是特殊的客戶/伺服器模型,特殊之處在於,客戶端軟體特質瀏覽器,使用HTTP協議通訊。用同用瀏覽器實現原來需要複雜專用軟體才能實現的客戶功能,節約了開發成本。

三層架構:表示層、邏輯層、資料層

  • 客戶端表示層。由Web瀏覽器組成,不存放任何應用程式。
  • 應用伺服器層(事務邏輯層)。由一臺或多臺伺服器組成,具有良好的可擴充套件性。
  • 資料中心層(資料處理層)。有資料庫系統組成,用於存放業務資料。

聯絡

  • 瀏覽器/伺服器(B/S)模型是一種特殊的、具體化的客戶/伺服器(C/S)模型,其特殊之處是B/S模型的客戶端軟體特指瀏覽器,伺服器一般是Web伺服器,使用HTTP協議通訊。其工作過程是C/S模型的具體化、例項化。
  • 二者的本質思想均是基於計算機網路中,不同主機之間軟硬體資源、運算能力和資訊不均等,為實現資源資訊共享,必然形成不對等的通訊地位和互動方式。
  • 兩種結構對應的軟體系統均為分散式網路應用程式系統。

模型組成

  1. 客戶端程式+伺服器程式,如微信客戶端版、PC版的網路遊戲
  2. Web瀏覽器+伺服器,如微信網頁版、網頁線上遊戲。

工作過程

C/S模型:

  1. 開啟一個通訊通道,告知伺服器程序所在主機將在某一埠上接受客戶請求。
  2. 等待客戶的請求到達該埠。
  3. 伺服器接收到服務請求,處理該請求併發送應答。
  4. 返回至第2步,等待並處理另一個客戶的請求。
  5. 關閉伺服器。

B/S模型:
這裡寫圖片描述
1. 使用者通過瀏覽器向Web伺服器提出HTTP請求。
2. Web伺服器根據瀏覽器請求調出相應檔案,對相應檔案不做處理或加以解釋執行後,將純客戶端HTML程式碼結果返回給瀏覽器。
3. 瀏覽器接收到Web伺服器發回的頁面內容(純HTML程式碼),顯示給使用者。

優缺點

C/S模型:
優點:

  • 結構簡單。
  • 支援分散式、併發環境。有效提高資源的利用率和共享程度。
  • 伺服器集中管理資源,有利於許可權控制和系統安全。
  • 可擴充套件性較好。客戶和伺服器均可單獨地升級

傳統C/S相比較B/S的侷限:
1.不易部署(客戶端逐一安裝、挑平臺)
2.維護困難(客戶端需注意更新)

B/S
優點:分散式、易擴充套件、共享性強
相比較傳統的C/S的優勢:
1.易部署(各平臺自帶通用瀏覽器)
2.容易維護(伺服器端改變網頁內容可實現所有使用者同步更新)
3.頁面動態重新整理,響應速度明顯降低。