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