時(shí)間:2018-09-25 作者:鄭州網(wǎng)站建設(shè) 來源:鄭州網(wǎng)站制作
在網(wǎng)站建設(shè)的過程中,需要應(yīng)用到各種各樣的語言和程序。
在主流的網(wǎng)站建設(shè)開發(fā)語言中,主流的主要有asp、asp.net、php、jsp等。這也是眾多客戶迷茫的地方之一,用哪種好?
asp.net是微軟的東西,他的發(fā)展前途取決于微軟的態(tài)度。
在.net之前,微軟的是ASP。在微軟的大力推廣下,其看起來還是很有前途的。但現(xiàn)在,微軟想推廣asp.net,而ASP成了其障礙。所以從Windows
Server 2003開始,微軟對(duì)ASP做了許多限制,比如上傳文件不能超過200KB等。再看看現(xiàn)在,微軟為了推廣Windows Vista以及最新的Windows 8,對(duì)Windows XP做了些什么,直接對(duì)普通用戶停止了技術(shù)支持,就是為了迫使你更換。 如果以后,微軟有了比.net更好的東西。微軟估計(jì)會(huì)對(duì).net做類似的限制,強(qiáng)制用戶升級(jí)。
PHP是完全開源的,其需求更貼近日常的應(yīng)用,代碼風(fēng)格類似于C語言,比較容易學(xué)習(xí)。
網(wǎng)站建設(shè)速度方面,雖然PHP不是經(jīng)過編譯的,但在Linux下的實(shí)際應(yīng)用的執(zhí)行效率肯定要比Windows下的.net快。
運(yùn)行時(shí)的安全性PHP肯定要比微軟的.net要高。不過通常代碼都是沒有保護(hù)的。通常需要用商業(yè)的Zend軟件來加密。當(dāng)然這個(gè)加密的過程也是種編譯的過程。保護(hù)了代碼的同時(shí),還提高了執(zhí)行速度。新的Zend的加密算法,目前還沒有成功破解的。而.net如果只做單純的編譯,是很容易被反編譯回來的。
PHP目前有兩個(gè)支線,一個(gè)PHP4、一個(gè)是PHP5。兩個(gè)支線都在共同的維護(hù)中。這保證過去使用PHP4的系統(tǒng)仍然能保證持續(xù)的良好的安全性和功能的更新。
ASP.NET與PHP哪個(gè)更有發(fā)展前途一點(diǎn)?
ASP是一個(gè)WEB服務(wù)器端的開發(fā)環(huán)境,利用它可以產(chǎn)生和運(yùn)行動(dòng)態(tài)的、交互的、高性能的WEB服務(wù)應(yīng)用程序。ASP采用腳本語言VBScript(Java script)作為自己的開發(fā)語言。
PHP是一種跨平臺(tái)的服務(wù)器端的嵌入式腳本語言。它大量地借用C,Java和Perl語言的語法,并耦合PHP自己的特性,使WEB開發(fā)者能夠快速地寫出動(dòng)態(tài)生成頁面。它支持目前絕大多數(shù)數(shù)據(jù)庫(kù)。還有一點(diǎn),PHP是完全免費(fèi)的,不用花錢,你可以從PHP官方站點(diǎn)自由下載。而且你可以不受限制地獲得源碼,甚至可以從中加進(jìn)你自己需要的特色。
JSP是Sun公司推出的新一代站點(diǎn)開發(fā)語言,他完全解決了目前ASP,PHP的一個(gè)通病——腳本級(jí)執(zhí)行(據(jù)說PHP4也已經(jīng)在Zend的支持下,實(shí)現(xiàn)編譯運(yùn)行)。Sun公司借助自己在Java上的不凡造詣,將Java從Java應(yīng)用程序和Java Applet之外,又有新的碩果,就是JSP——Java Server Page。Jsp可以在Serverlet和JavaBean的支持下,完成功能強(qiáng)大的站點(diǎn)程序。
三者都提供在HTML代碼中混合某種程序代碼、由語言引擎解釋執(zhí)行程序代碼的能力。但JSP代碼被編譯成 Servlet并由Java虛擬機(jī)解釋執(zhí)行,這種編譯操作僅在對(duì)JSP頁面的第一次請(qǐng)求時(shí)發(fā)生。
在ASP 、PHP、JSP環(huán)境下,HTML代碼主要負(fù)責(zé)描述信息的顯示樣式,而程序代碼則用來描述處理邏輯。普通的 HTML頁面只依賴于Web服務(wù)器,而ASP 、PHP、JSP頁面需要附加的語言引擎分析和執(zhí)行程序代碼。程序代碼的執(zhí)行結(jié)果被重新嵌入到HTML代碼中,然后一起發(fā)送給瀏覽器。ASP 、PHP、JSP三者都是面向Web服務(wù)器的技術(shù),客戶端瀏覽器不需要任何附加的軟件支持。
技術(shù)特點(diǎn)
ASP:使用VBScript、JScript等簡(jiǎn)單易懂的腳本語言,結(jié)合HTML代碼,即可快速地完成網(wǎng)站的應(yīng)用程序。
無須compile編譯,容易編寫,可在服務(wù)器端直接執(zhí)行。使用普通的文本編輯器,如Windows的記事本,即可進(jìn)行編輯設(shè)計(jì)。與瀏覽器無關(guān)(Browser Independence),用戶端只要使用可執(zhí)行HTML碼的瀏覽器,即可瀏覽Active Server Pages所設(shè)計(jì)的網(wǎng)頁內(nèi)容。Active ServerPages 所使用的腳本語言(VBScript、Jscript)均在WEB服務(wù)器端執(zhí)行,用戶端的瀏覽器不需要能夠執(zhí)行這些腳本語言。 Active Server Pages能與任何ActiveX scripting語言相容。除了可使用VB Script或JScript語言來設(shè)計(jì)外,還通過plug-in的方式,使用由第三方所提供的其他腳本語言,譬如REXX、Perl、Tcl等。腳本引擎是處理腳本程序的COM(Component Object Model) 物件??墒褂梅?wù)器端的腳本來產(chǎn)生客戶端的腳本。 ActiveX Server Components(ActiveX 服務(wù)器元件 )具有無限可擴(kuò)充性??梢允褂肰isual Basic 、Java、Visual C++、COBOL等編程語言來編寫你所需要的ActiveX Server Component。
PHP:數(shù)據(jù)庫(kù)連接 PHP可以編譯成具有與許多數(shù)據(jù)庫(kù)相連接的函數(shù)。PHP與MySQL是現(xiàn)在絕佳的組合。你還可以自己編寫外圍的函數(shù)去間接存取數(shù)據(jù)庫(kù)。通過這樣的途徑當(dāng)你更換使用的數(shù)據(jù)庫(kù)時(shí),可以輕松地更改編碼以適應(yīng)這樣的變化。PHPLIB就是最常用的可以提供一般事務(wù)需要的一系列基庫(kù)。但PHP提供的數(shù)據(jù)庫(kù)接口支持彼此不統(tǒng)一,比如對(duì)Oracle,MySQL,Sybase的接口,彼此都不一樣。這也是PHP的一個(gè)弱點(diǎn)。
面向?qū)ο缶幊?PHP提供了類和對(duì)象?;趙eb的編程工作非常需要面向?qū)ο缶幊棠芰?。PHP支持構(gòu)造器、提取類等。
JSP:將內(nèi)容的生成和顯示進(jìn)行分離 使用JSP技術(shù),Web頁面開發(fā)人員可以使用HTML或者XML標(biāo)識(shí)來設(shè)計(jì)和格式化最終頁面。使用JSP標(biāo)識(shí)或者小腳本來生成頁面上的動(dòng)態(tài)內(nèi)容。生成內(nèi)容的邏輯被封裝在標(biāo)識(shí)和JavaBeans組件中,并且捆綁在小腳本中,所有的腳本在服務(wù)器端運(yùn)行。如果核心邏輯被封裝在標(biāo)識(shí)和Beans中,那么其他人,如Web管理人員和頁面設(shè)計(jì)者,能夠編輯和使用JSP頁面,而不影響內(nèi)容的生成。 在服務(wù)器端,JSP引擎解釋JSP標(biāo)識(shí)和小腳本,生成所請(qǐng)求的內(nèi)容(例如,通過訪問JavaBeans組件,使用JDBCTM技術(shù)訪問數(shù)據(jù)庫(kù),或者包含文件),并且將結(jié)果以HTML(或者XML)頁面的形式發(fā)送回瀏覽器。這有助于作者保護(hù)自己的代碼,而又保證任何基于HTML的Web瀏覽器的完全可用性。 強(qiáng)調(diào)可重用的組件 絕大多數(shù)JSP頁面依賴于可重用的,跨平臺(tái)的組件(JavaBeans或者Enterprise JavaBeans組件)來執(zhí)行應(yīng)用程序所要求的更為復(fù)雜的處理。開發(fā)人員能夠共享和交換執(zhí)行普通操作的組件,或者使得這些組件為更多的使用者或者客戶團(tuán)體所使用。基于組件的方法加速了總體開發(fā)過程,并且使得各種組織在他們現(xiàn)有的技能和優(yōu)化結(jié)果的開發(fā)努力中得到平衡。 采用標(biāo)識(shí)簡(jiǎn)化頁面開發(fā)Web頁面開發(fā)人員不會(huì)都是熟悉腳本語言的編程人員。JavaServer Page技術(shù)封裝了許多功能,這些功能是在易用的、與JSP相關(guān)的XML標(biāo)識(shí)中進(jìn)行動(dòng)態(tài)內(nèi)容生成所需要的。標(biāo)準(zhǔn)的JSP標(biāo)識(shí)能夠訪問和實(shí)例化JavaBeans組件,設(shè)置或者檢索組件屬性,下載Applet,以及執(zhí)行用其他方法更難于編碼和耗時(shí)的功能。
通過開發(fā)定制化標(biāo)識(shí)庫(kù),JSP技術(shù)是可以擴(kuò)展的。今后,第三方開發(fā)人員和其他人員可以為常用功能創(chuàng)建自己的標(biāo)識(shí)庫(kù)。這使得Web頁面開發(fā)人員能夠使用熟悉的工具和如同標(biāo)識(shí)一樣的執(zhí)行特定功能的構(gòu)件來工作。 JSP技術(shù)很容易整合到多種應(yīng)用體系結(jié)構(gòu)中,以利用現(xiàn)存的工具和技巧,并且擴(kuò)展到能夠支持企業(yè)級(jí)的分布式應(yīng)用。作為采用Java技術(shù)家族的一部分,以及Java2(企業(yè)版體系結(jié)構(gòu))的一個(gè)組成部分,JSP技術(shù)能夠支持高度復(fù)雜的基于Web的應(yīng)用。 由于JSP頁面的內(nèi)置腳本語言是基于Java編程語言的,而且所有的JSP頁面都被編譯成為Java Servlet,JSP頁面就具有Java技術(shù)的所有好處,包括健壯的存儲(chǔ)管理和安全性。
作為Java平臺(tái)的一部分,JSP擁有Java編程語言“一次編寫,各處運(yùn)行”的特點(diǎn)。隨著越來越多的供應(yīng)商將JSP支持添加到他們的產(chǎn)品中,您可以使用自己所選擇的服務(wù)器和工具,更改工具或服務(wù)器并不影響當(dāng)前的應(yīng)用。
應(yīng)用范圍
ASP是Microsoft開發(fā)的動(dòng)態(tài)網(wǎng)頁語言,也繼承了微軟產(chǎn)品的一貫傳統(tǒng)——只能運(yùn)行于微軟的服務(wù)器產(chǎn)品,IIS(Internet Information Server) (windows NT)和PWS(Personal Web Server)(windows 98)上。Unix下也有ChiliSoft的插件來支持ASP,但是ASP本身的功能有限,必須通過ASP+COM的組合來擴(kuò)充,Unix下的COM實(shí)現(xiàn)起來非常困難。
PHP3可在Windows,Unix,Linux的Web服務(wù)器上正常運(yùn)行,還支持IIS,Apache等通用Web服務(wù)器,用戶更換平臺(tái)時(shí),無需變換PHP3代碼,可即拿即用。
JSP同PHP3類似,幾乎可以運(yùn)行于所有平臺(tái)。如Win NT,Linux,Unix. NT下IIS通過一個(gè)插件,例如JRUN或者ServletExec,就能支持JSP。著名的Web服務(wù)器Apache已經(jīng)能夠支持JSP。由于Apache廣泛應(yīng)用在NT、Unix和Linux上,因此JSP有更廣泛的運(yùn)行平臺(tái)。雖然現(xiàn)在NT操作系統(tǒng)占了很大的市場(chǎng)份額,但是在服務(wù)器方面Unix的優(yōu)勢(shì)仍然很大,而新崛起的Linux更是來勢(shì)不小。從一個(gè)平臺(tái)移植到另外一個(gè)平臺(tái),JSP和JavaBean甚至不用重新編譯,因?yàn)镴ava字節(jié)碼都是標(biāo)準(zhǔn)的與平臺(tái)無關(guān)的。
性能比較
有人做過試驗(yàn),對(duì)這三種語言分別做循環(huán)性能測(cè)試及存取Oracle數(shù)據(jù)庫(kù)測(cè)試。 在循環(huán)性能測(cè)試中,JSP只用了令人吃驚的四秒鐘就結(jié)束了20000*20000的循環(huán)。而ASP、PHP測(cè)試的是2000*2000循環(huán)(少一個(gè)數(shù)量級(jí)),卻分別用了63秒和84秒。(參考PHPLIB)。 數(shù)據(jù)庫(kù)測(cè)試中,三者分別對(duì) Oracle 8 進(jìn)行 1000 次 Insert,Update,Select和Delete: JSP 需要 13 秒,PHP 需要 69 秒,ASP則 需要 73 秒。
PHP與ASP.NET優(yōu)劣勢(shì)分析
不管你是不是已經(jīng)選擇了PHP,根據(jù)它在如下表格中在價(jià)格、速度、效率、安全性、平臺(tái)支持性和開源與否上的表現(xiàn),我們都能判斷出它的強(qiáng)項(xiàng)是遠(yuǎn)勝于弱點(diǎn)的。
通過以上描述可以看出,不同的網(wǎng)站建設(shè)語言有著不同的特色和優(yōu)勢(shì),這就需要網(wǎng)站建設(shè)人員在網(wǎng)站建設(shè)的過程中有針對(duì)性的選擇語言,進(jìn)而建設(shè)出一個(gè)最為優(yōu)秀的網(wǎng)站。