一、基本概況
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開發,隨着受眾的增多,或者說是龐大的系統結構,通常一個服務器端根本解決不了問題,那么,服務器端的增加會帶來什么影響?當一個系統太過於龐大的時候,如果我們仍然使用一個解決方案,在后續維護的時候,會出現什么問題?