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

Quick Facts 開發者, 目前版本 ...
Active Server Pages (ASP)
開發者Microsoft
目前版本3.0(2000年2月17日,​24年前​(2000-02-17
類型Web應用框架
許可協定專有軟體
網站www.asp.net 編輯維基數據
Close
Quick Facts 副檔名, 開發者 ...
Active Server Pages
副檔名
.asp
開發者Microsoft
Close

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!

參見

外部連結

應用或比較
替代產物

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.