最早的軟件都是運(yùn)行在大型機(jī)上的,軟件使用者通過(guò)“啞終端”登陸到大型機(jī)上去運(yùn)行軟件。后來(lái)隨著PC機(jī)的興起,軟件開(kāi)始主要運(yùn)行在桌面上,而數(shù)據(jù)庫(kù)這樣的軟件運(yùn)行在服務(wù)器端,這種Client/Server模式簡(jiǎn)稱(chēng)CS架構(gòu)。
隨著互聯(lián)網(wǎng)的興起,人們發(fā)現(xiàn),CS架構(gòu)不適合Web,最大的原因是Web應(yīng)用程序的修改和升級(jí)非常迅速,而CS架構(gòu)需要每個(gè)客戶(hù)端逐個(gè)升級(jí)桌面App,因此,Browser/Server模式開(kāi)始流行,簡(jiǎn)稱(chēng)BS架構(gòu)。
在BS架構(gòu)下,客戶(hù)端只需要瀏覽器,應(yīng)用程序的邏輯和數(shù)據(jù)都存儲(chǔ)在服務(wù)器端。瀏覽器只需要請(qǐng)求服務(wù)器,獲取Web頁(yè)面,并把Web頁(yè)面展示給用戶(hù)即可。
當(dāng)然,Web頁(yè)面也具有極強(qiáng)的交互性。由于Web頁(yè)面是用HTML編寫(xiě)的,而HTML具備超強(qiáng)的表現(xiàn)力,并且,服務(wù)器端升級(jí)后,客戶(hù)端無(wú)需任何部署就可以使用到新的版本,因此,BS架構(gòu)迅速流行起來(lái)。
今天,除了重量級(jí)的軟件如Office,Photoshop等,大部分軟件都以Web形式提供。比如,新浪提供的新聞、博客、微博等服務(wù),均是Web應(yīng)用。
Web應(yīng)用開(kāi)發(fā)可以說(shuō)是目前軟件開(kāi)發(fā)中最重要的部分。Web開(kāi)發(fā)也經(jīng)歷了好幾個(gè)階段:
靜態(tài)Web頁(yè)面:由文本編輯器直接編輯并生成靜態(tài)的HTML頁(yè)面,如果要修改Web頁(yè)面的內(nèi)容,就需要再次編輯HTML源文件,早期的互聯(lián)網(wǎng)Web頁(yè)面就是靜態(tài)的;
CGI:由于靜態(tài)Web頁(yè)面無(wú)法與用戶(hù)交互,比如用戶(hù)填寫(xiě)了一個(gè)注冊(cè)表單,靜態(tài)Web頁(yè)面就無(wú)法處理。要處理用戶(hù)發(fā)送的動(dòng)態(tài)數(shù)據(jù),出現(xiàn)了Common Gateway Interface,簡(jiǎn)稱(chēng)CGI,用C/C++編寫(xiě)。
ASP/JSP/PHP:由于Web應(yīng)用特點(diǎn)是修改頻繁,用C/C++這樣的低級(jí)語(yǔ)言非常不適合Web開(kāi)發(fā),而腳本語(yǔ)言由于開(kāi)發(fā)效率高,與HTML結(jié)合緊密,因此,迅速取代了CGI模式。ASP是微軟推出的用VBScript腳本編程的Web開(kāi)發(fā)技術(shù),而JSP用Java來(lái)編寫(xiě)腳本,PHP本身則是開(kāi)源的腳本語(yǔ)言。
MVC:為了解決直接用腳本語(yǔ)言嵌入HTML導(dǎo)致的可維護(hù)性差的問(wèn)題,Web應(yīng)用也引入了Model-View-Controller的模式,來(lái)簡(jiǎn)化Web開(kāi)發(fā)。ASP發(fā)展為ASP.Net,JSP和PHP也有一大堆MVC框架。
目前,Web開(kāi)發(fā)技術(shù)仍在快速發(fā)展中,異步開(kāi)發(fā)、新的MVVM前端技術(shù)層出不窮。