Active Server Pages

服務器端腳本引擎

动态服务器网页(英文:Active Server Pages,简称ASP),是由微软公司开发的服务器端运行的脚本平台,它被WindowsInternet Information Services (IIS)的程序所管理。透过ActiveX server的技术让不同的用户能有不同的画面,或需要让他们可以访问服务器(server)上的资料时,使用ASP3.0中提供了五个内置的对象建立模拟和安全性的动态内容,来协助程序员隐藏复杂的沟通机制,让程序员可以专注在解决问题和应用之上,这样可以更快速地开发动态网页的同时每一个组件都是可以由一组富有经验的程序员根据动态网页最常用的功能而独立开发。

Active Server Pages (ASP)
开发者Microsoft
当前版本3.0(2000年2月17日,​24年前​(2000-02-17
类型Web应用框架
许可协议专有软件
网站www.asp.net 编辑维基数据
Active Server Pages
扩展名
.asp
开发者Microsoft

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!

参见

编辑

外部链接

编辑
应用或比较
替代产物