Active Server Pages

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書
Active Server Pages (ASP)
開發者Microsoft
類型Web應用框架
許可協議專有軟件
網站www.asp.net 編輯維基數據
Active Server Pages
副檔名
.asp
開發者Microsoft

動態伺服器網頁(英文:Active Server Pages,簡稱ASP),是由微軟公司開發的服務器端運行的腳本平台,它被WindowsInternet Information Services (IIS)的程式所管理。透過ActiveX server的技術讓不同的使用者能有不同的畫面,或需要讓他們可以存取服務器(server)上的資料時,使用ASP3.0中提供了五個內建的物件建立模擬和安全性的動態內容,來協助程序員隱藏複雜的溝通機制,讓程序員可以專注在解決問題和應用之上,這樣可以更快速地開發動態網頁的同時每一個組件都是可以由一組富有經驗的程序員根據動態網頁最常用的功能而獨立開發。

ASP的特色

ASP隱藏了網頁伺服器與瀏覽者之間溝通的繁瑣機制的同時也基於script base的特性,網頁撰寫員可以專心撰寫應用的程式的邏輯部份,再者ASP也像HTML般透過撰寫程序來即時測試網頁是否安全地運行,而不必擔心程式和伺服器不能溝通的問題,另外因為那些script是於發送前於伺服器中先行轉譯處理成為HTML後再而發送至代理伺服器邊的動態網頁技術,不必擔心瀏覽器的支援性,以及網頁撰寫員的程式邏輯像client-side script會被盜用,因此最終瀏覽者只會是使用HTML來瀏覽。

利用ASP程序最常用的是Cookies,它利用Session組件實現的。同時還可以利用第三方組件延伸ASP的作用,如利用MailSender組件發送電子郵件

通過ASP,可以結合HTML網頁、ASP指令和ActiveX元件建立動態、交互且高效的WEB服務器應用程序。同時,ASP也支持VBScriptJScript腳本語言,默認為VBScript,而其中JScript微軟公司的ECMAScript標準的實現,並且有自己的擴展。

五個內建組件

  • Application:在一個ASP-based application讓不同使用者共享資訊。
  • Request:從使用者處理取得資訊
  • Response:將資訊送給使用者
  • Server:提供一些Web Server的工具
  • Session:儲存在一個session內使用者的資訊

物件的支援

ASP對COM的支援會允許撰寫員使用server component(或OLE Automation server)。透過它撰寫員可以發展自己的物件,或將把程式轉成Web-base的介面。

  • 透過ADO提供對於資料庫的應用。
  • 透過ActiveX的Scripting.FileSystemObject提供對於檔案的操作。

Session的管理

ASP在Server端Respondse時會經由HTTP的Set-Cookie的header欄位傳送名為ASPSESSIONIDSession ID英語Session ID。而用戶端的瀏覽器在收到這個Session ID之後,會在下次的Request時,經由HTTP的Cookie的header欄位再把這個Session ID傳給Server,藉以讓Server區分是同一個瀏覽者,以獲得其專用的Session變數存取。這個機制可應用於帳號登入,在Session TimeOut被清除之前,只要瀏覽者沒關閉瀏覽器,就能持續保持帳號登入的狀態‧

此外,ASP可以經由檔案Global.asa裡的兩個事件處理(Session_OnStart與Session_OnEnd)去控制該瀏覽者Session的建立與結束的額外處理。這可以用來作為統計實際線上人數之用。

版本

ASP目前最新的版本為3.0,與Windows 2000一起發行,並內植於IIS 5.0中。

  • ASP 1.0內含於Windows NT 4.0 Service Pack 3(IIS 3.0)發行。
  • ASP 2.0內含於Windows NT 4.0 Option Pack,與IIS 4.0一起亮相。

自ASP 3.0發行後,除了各版本對它的安全性或問題修補外,對主要功能都沒有再進一步的更新。 Windows Server 2003發行的ASP也是3.0版本。

其後繼者ASP+(即ASP.NET),已內含於.NET Framework中持續演化。

原理

ASP是經過服務器解析之後再向網頁瀏覽器返回數據,所以有了ASP就不必擔心客戶的瀏覽器是否能運行你所編寫的代碼。因為所有的程序都將在網頁服務器端執行,包括所有嵌在普通HTML中的腳本程序。當程序執行完畢後,服務器僅將執行的結果返回給客戶瀏覽器,這樣也就減輕了客戶端瀏覽器的負擔,大大提高了交互的速度。

由於代碼是需要經過服務器執行之後才向瀏覽器發送的,所以在客戶端看到的只能是經過解析之後的數據,而無法獲得源代碼,故編寫者不用擔心自己的源代碼會被別人剽竊。但不排除黑客利用系統漏洞竊取服務器端的ASP源代碼。

基於這樣的解析方式,也導致運行ASP頁面相對於普通的HTML頁面要慢一點。因為普通的HTML頁面只需要瀏覽器就能夠解析,而ASP則必須是服務器將整頁的代碼都執行一遍之後再發送數據。

ASP提供與數據庫的交互,如Microsoft SQL ServerMicrosoft AccessMySQLOracle,比較流行的是ASP和Microsoft SQL Server的組合。

範例

ASP程式(包括與資料庫連線的部分)都是嵌入在普通HTML和其他客戶端語言中的。例如

你好!
<!-- 上面是將“你好!”在瀏覽器中輸出,這是通過HTML實現的 -->
<%
'這一行註釋,將不會顯示
Response.write "Wikipedia!" '這行將在瀏覽器中輸出“Wikipedia!”
%>

ASP語言是嵌入在「<%...%>」之間的部分。而這個程序最終結果將是:

你好!Wikipedia!

參見

外部連結

應用或比較
替代產物