动态伺服器网页(英文:Active Server Pages,简称ASP),由微软公司开发的服务器端运行的脚本平台,它被Windows下Internet 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也支持VBScript和JScript等脚本语言,默认为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提供对于档案的操作。
状态(State)的管理
状态管理是ASP的重要功能之一,原因为HTTP是一个stateless的协定,当有匿名的request进入时,浏览者无法辨认这些的request是否安全,或那些request之间的关连性时,便无法透过浏览者取得资讯如帐户及密码等,对交易特性的Web应用程式造成了阻碍。因此ASP透过cookie的包装和使用让浏览者可以简单地管理众多使用者名称的不同状态。
版本
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 Server、Microsoft Access、MySQL和Oracle,比较流行的是ASP和Microsoft SQL Server的组合。