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