B/S與C/S簡單比較
2009-8-3B/S,即軟件系統的瀏覽器/服務器(Browser/Server)應用模式,是瀏覽器接收了用戶的鼠標和鍵盤操作,然后這些操作最多通過簡單的javascript或者dhtml包裝(例如裝入某個input標簽的value),回發給WEB服務器。WEB服務器接下來輸出下一個頁面。在WEB端,不暴露任何除了http服務器以外的傳統服務器,例如數據庫服務器、郵件服務器、組件服務器、其它業務服務器(完全是跨平臺的)等等。
C/S,即軟件系統的客戶端/服務器(Client/Server)應用模式,則是依賴于程序員寫的程序的水平和服務器系統與應用系統綜合控制能力,傳統編程方式中上述服務器通常都暴露給終端。看看周邊的程序員寫的C/S程序,我相信很少有人寫的此類程序具有起碼的安全性。很多公司的ERP是直接從客戶端打開后臺數據庫的,而這些打開命令甚至不用反匯編客戶程序,只要搜索一下特征代碼就能從DLL中發現。而.NET的DLL更不牢固。
從信息流上來說,由于B/S服務器的設計用于“服務于大規模用戶請求”的,所以它是把請求集中成一個數據塊(一個http的GET或者POST命令)傳遞給WEB服務的,然后服務也僅僅送還一個文件或一個數據塊(特別是Ajax技術的B/S應用)。而C/S按照傳統的寫法,特別是界面比較復雜的程序,內部各個控件都會獨立、重復地請求各自需要的服務器,因此是許多個請求,比B/S對帶寬的需求多許多倍。如何避免濫用帶寬,讓服務器也能在較低的成本下服務幾百個客戶端,設計上很難。