1. 程式人生 > >B/S 開發和 C/S開發的區別

B/S 開發和 C/S開發的區別

導讀:每天都從應用中心下載很多軟體安裝嘗試,在自己的電腦上也裝了很多軟體,但是,就出現了一個問題,好比QQ,為什麼有了APP,還要有網站應用呢?由此,結合到自己的學習,就衍生出一個問題:C/S 開發就可以做出很好很好的東西,為什麼還要有B/S開發呢?它們之間的區別是什麼?

一、基本概況

1.1,概念

C/S (Client/Server)開發:又稱Client/Server或客戶/伺服器模式。伺服器通常採用高效能的PC、工作站或小型機,並採用大型資料庫系統,如ORACLE、SYBASE、InfORMix或 SQL Server。客戶端需要安裝專用的客戶端軟體。

附:C/S結構圖

B/S 開發(Browser/Server,瀏覽器/伺服器模式)

:是WEB興起後的一種網路結構模式,WEB瀏覽器是客戶端最主要的應用軟體。這種模式統一了客戶端,將系統功能實現的核心部分集中到伺服器上,簡化了系統的開發、維護和使用。客戶機上只要安裝一個瀏覽器(Browser英 ['braʊzə]美 ['braʊzɚ]),如Netscape Navigator或Internet Explorer,伺服器安裝SQL Server、Oracle、MYSQL等資料庫。瀏覽器通過Web Server 同資料庫進行資料互動。

附:B/S結構圖


1.2,應用語言

如果說到應用什麼語言去開發C/S 或者說是B/S 結構的的程式,那麼作為目前的一個現狀來說,很可能就認為:C++,C#,VB等更偏向C/S開發,而所用到的像JS,java,JQuery等,則會被認為更偏向於B/S開發。(某一時期,我是這麼認為的)但是,這是不準確的!為什麼,看後續的C/S和B/S的關係就明白了。

二、C/S 和 B/S 的對比

2.1,優點

2.1.1 C/S

安全性:C/S需要其特定的客戶端,所以面向的物件比較確定,由此所進行的資訊保安處於一種可控的範圍。

效率:客戶端和服務端直接相連,省卻了中間環節,資料的傳輸相對較快。

個性化:C/S尤其特定的客戶端,因此可以較大程度上滿足客戶的個性化要求,如介面、操作等。

穩定性:結構較穩定,較強的事務處理能力,可實現比較複雜的的業務邏輯。

2.1.2 B/S

範圍:零安裝:擁有一個瀏覽器,即可訪問。因此,它所面向的範圍更為的廣闊。

擴充套件性:通常來說,通過增添網頁即可擴充套件系統的功用。零維護:更新頁面,即可以實現面向所有使用者的更新。

共享:B/S 通過瀏覽器訪問,共享性強。

2.2,缺點

2.2.1 C/S

由於需要在PC端安裝特定的軟體,所以,它對PC機有一定的要求:如,作業系統。而且,安裝和部署複雜。

擴充套件性和維護成本高,當面對第二客戶有不同需求時,得修改其介面等設計。當客戶端達到一定的量時,同時訪問伺服器,造成服務端的響應變慢,效率變低。(但在資料量小的時候不存在)

2.2.2 B/S

由於B/S針對的物件範圍廣,所以,它的設計一般而言是一種公共審美,無法滿足個性化的需求。

2.3,C/S和B/S的聯絡

2.3.1 聯絡:

1,C/S可以使用任何通訊協議,而B/S這個特殊的C/S架構規定必須實現HTTP協議
2,瀏覽器是一個通用客戶端,本質上開發瀏覽器,還是實現一個C/S系統

C/S開發和B/S開發從本質上來講,並沒有什麼區別。所以在其應用語言的選擇上,沒有太明確太嚴格的要求,就比如說:VB、VC等即可用於C/S 開發,也可用於B/S開發。如果非要說不同的話,那麼作為我個人來說,也許是在一些類庫上有區別。由於B/S的範圍廣,物件多,開發過程中需要應用的東西就多很多,所以可能會需要像是Ajax,JQuery等使用,或者說引用更多的API類庫等。

2.3.2 區別:

投入成本:B/S在一般情況下只需求一次投入,即開發時的費用。而C/S隨著其使用範圍、人數的增多,其維護成本、開發成本相應的增多。

資源利用:當資料量達到一定的程度之後,C/S開發中的伺服器無法滿足其需求,通常需要更換效能更為優越的伺服器,而原有的舊伺服器被廢棄。而作為B/S開發,在需求量增大時,可以通過增添伺服器的數量去圓滑的解決這個問題,其資源的利用程度相對較高。

三、總結

有些資料還是要去查一下的,然後才能明確。很多時候,不是自己不知道,只是不敢確定。但這種不確定性,卻會在後續的學習中帶來很大的困擾。

從C/S開發到B/S開發,隨著受眾的增多,或者說是龐大的系統結構,通常一個伺服器端根本解決不了問題,那麼,伺服器端的增加會帶來什麼影響?當一個系統太過於龐大的時候,如果我們仍然使用一個解決方案,在後續維護的時候,會出現什麼問題?