什么是服務(wù)器腳本?
通常,當(dāng)瀏覽器請(qǐng)求某個(gè) HTML 文件時(shí),服務(wù)器會(huì)返回此文件,但是假如此文件含有服務(wù)器端的腳本,那么在此 HTML 文件作為純 HTML 被返回瀏覽器之前,首先會(huì)執(zhí)行 HTML 文件中的腳本。
從服務(wù)器腳本語(yǔ)言CGI來(lái)解釋服務(wù)器腳本的運(yùn)行過(guò)程:
當(dāng)用戶從 Web 頁(yè)面提交HTML 請(qǐng)求數(shù)據(jù)后,Web 瀏覽器發(fā)送用戶的請(qǐng)求到Web 服務(wù)器上,服務(wù)器運(yùn)行CGI 程序,后者提取HTTP 請(qǐng)求數(shù)據(jù)中的內(nèi)容初始化設(shè)置,同時(shí)交互服務(wù)器端的數(shù)據(jù)庫(kù),然后將運(yùn)行結(jié)果返回Web 服務(wù)器,Web 服務(wù)器根據(jù)用戶請(qǐng)求的地址將結(jié)果返回該地址的瀏覽器。從整個(gè)過(guò)程來(lái)講,CGI 程序運(yùn)行在服務(wù)器端,同時(shí)需要與數(shù)據(jù)庫(kù)交換數(shù)據(jù),這需要開發(fā)者擁有相當(dāng)?shù)募记?,同時(shí)擁有服務(wù)器端網(wǎng)站開發(fā)工具,程序的編寫、調(diào)試和維護(hù)過(guò)程十分復(fù)雜。同時(shí),由于整個(gè)處理過(guò)程全部在服務(wù)器端處理,無(wú)疑是服務(wù)器處理能力的一大硬傷,而且客戶端頁(yè)面的反應(yīng)速度不容樂(lè)觀。
8種服務(wù)器端腳本語(yǔ)言的比較:
1.CGI
Common GateWay Interface是最早用來(lái)創(chuàng)建動(dòng)態(tài)網(wǎng)頁(yè)的一種技術(shù),它允許使用不同的語(yǔ)言來(lái)編寫適合的CGI程序,CGI可是說(shuō)是當(dāng)前應(yīng)用程序的基礎(chǔ)技術(shù),但這種技術(shù)的編制方式比較困難而且效率較低。
2.ASP
Active Server Page是一種使用很廣泛的開發(fā)動(dòng)態(tài)網(wǎng)站的技術(shù),它通過(guò)在頁(yè)面代碼種嵌入VBScript和JavaScript腳本語(yǔ)言來(lái)生成動(dòng)態(tài)的內(nèi)容,其中微軟的COM(Component Object Model)無(wú)限地?cái)U(kuò)充了ASP的能力,正因?yàn)檫@一點(diǎn),ASP主要用于Windows平臺(tái)中,ASP簡(jiǎn)單易學(xué),一般需與Microsoft的IIS一起使用,以支持ASP的應(yīng)用程序。
3.PHP
PHP的雛形最早出現(xiàn)于1995年Rasmus Lerdorf發(fā)布了的第一個(gè)供他人使用的PHP版本,即Personal Home Page Tools.而現(xiàn)在的含義是一種廣泛使用的服務(wù)器端編程語(yǔ)言,PHP也就成為Hypertext Preprocessor的縮寫。它是一種開源的、跨平臺(tái)、獨(dú)立于架構(gòu)的、解釋的、面向?qū)ο蟮腤eb服務(wù)器端動(dòng)態(tài)網(wǎng)頁(yè)開發(fā)語(yǔ)言,混合了C、C++、Perl、Java的一些特性。PHP主要被廣泛用于UNIX/Linux平臺(tái)。PHP+Apache+MySQL是一個(gè)完全免費(fèi)、性能優(yōu)越的Web服務(wù)器應(yīng)用開發(fā)組合,已經(jīng)成為絕大多數(shù)中小型網(wǎng)站的應(yīng)用解決方案。
4.ASP.NET
Active Server Page.NET是.NET框架的一部分,可以使用任何.NET兼容的語(yǔ)言,如VB.NET、C#、J#等。ASP.NET的Web Forms允許在網(wǎng)頁(yè)的基礎(chǔ)上建立強(qiáng)大的窗體,并且可以使用可視化的控件,而這些控件允許開發(fā)者使用內(nèi)建和自定義的控件來(lái)快速建立網(wǎng)頁(yè)頁(yè)面,使得代碼簡(jiǎn)單化,開發(fā)的周期也會(huì)縮短很多。
5.HTML
Hyper Text Markup Language,是一種利用Tag來(lái)描述網(wǎng)頁(yè)的字體、大小、顏色和布局的語(yǔ)言,可以使用任何的文本編輯器編輯。但是唯一的缺陷在于只能生成靜態(tài)的網(wǎng)頁(yè)。
6.HTM
實(shí)際上HTM與HTML沒(méi)有本質(zhì)意義的區(qū)別,只是為了滿足DOS僅能識(shí)別三位文件名而已,因?yàn)橐恍├系南到y(tǒng)(win32)不能識(shí)別四位文件名。
7.SHTML
SHTML和asp 有一些相似,以shtml命名的文件里,使用了ssi(Server Side Include)的一些指令,就像asp中的指令,你可以在SHTML文件中寫入SSI指令,當(dāng)客戶端訪問(wèn)這些shtml文件時(shí),服務(wù)器端會(huì)把這些SHTML文件進(jìn)行讀取和解釋,把SHTML文件中包含的SSI指令解釋出來(lái)。
8.JSP
Java Server Page是Sun公司倡導(dǎo)與多個(gè)公司共同建立的一種技術(shù)標(biāo)準(zhǔn),是在Servlet的基礎(chǔ)上開發(fā)的技術(shù),在制作網(wǎng)頁(yè)的過(guò)程中,它繼承了Java的所有特性,因此具有簡(jiǎn)單、面向?qū)ο?、跨平臺(tái)和安全可靠等有點(diǎn),由于服務(wù)器端要使用Servlet和JDK,所以在編譯時(shí),編譯的是.CLASS文件,所以網(wǎng)頁(yè)的執(zhí)行速度很快,而且其中的Struts、Spring、 Hibernate是Java Web開發(fā)中比較優(yōu)秀的開源框架。
服務(wù)器腳本可以動(dòng)態(tài)地向 web 頁(yè)面編輯、改變或添加任何的內(nèi)容;對(duì)由 HTML 表單提交的用戶請(qǐng)求或數(shù)據(jù)進(jìn)行響應(yīng);訪問(wèn)數(shù)據(jù)或數(shù)據(jù)庫(kù),并向?yàn)g覽器返回結(jié)果;為不同的用戶定制頁(yè)面;提高網(wǎng)頁(yè)安全性,使您的網(wǎng)頁(yè)代碼不會(huì)通過(guò)瀏覽器被查看到。
重要事項(xiàng):由于腳本在服務(wù)器上執(zhí)行,因此瀏覽器在不支持腳本的情況下就可以顯示服務(wù)器端的文件!