ASP动态页服务器端的处理原理

作者:CODEOF 时间:2007-09-14 10:07:00 

就服务器端处理而言,ASP是产生动态Web网页的一种相对较新的技术。动态页意味着什么呢?先暂时不考虑客户端相关功能上的进展,也不讨论客户端脚本、Java Applet、动态HTML或ActiveX控件等内容。这里的动态页是专指服务器响应客户端请求产生的页面,并且根据情况每次产生的页面可能是不同的。
  
    举个简单的例子,创建一个只包含当前日期和时间的页面。每次请求该页面时将显示一个不同的值,因为日期和时间取决于服务器的时钟,或取决于提供日期和时间的一个资源(例如一个独立的服务器或来自于互联网上一个标准时钟)。当然,实际上动态页要比这复杂得多,也许显示数据库记录的当前值或者邮件服务器上等待着的邮件消息的摘要。重要的是服务器不仅阅读一个无格式的HTML页面、或磁盘上的文本文件以及把它们发送给客户,而且,必须完成一些工作来创建该页面。
  
    Internet服务器应用编程接口
  
    传统的技术是使用与Web服务器的一个接口,它被称为Internet服务器应用编程接口(Internet Server Application Programming Interface,ISAPI)。
  
    ISAPI可用于执行其他的应用程序,这些应用程序通过C语言风格的stdin和stdout数据流函数来读取客户端请求的值并创建Web服务器的响应。ISAPI应用程序所必须做的全部事情就是编写相应结果页面的文本和HTML,并通过stdout函数输出到Web服务器。事实上ASP DLL内部真正做的事情是更面向对象的。
  
    IIS自开始就运行ISAPI的应用程序和脚本解释器。它提供一个特殊的解释器动态链接库,给出访问服务器的请求和响应的另一种方法,尽管受到一定的限制。它通过服务器端包含指令实现,之所以这样说,是因为它们是在服务器上执行的,并且结果包含在传送给客户端的响应中。这个特性在IIS中是通过一个名为ssinc.dll的动态链接库实现的。缺省情况下,IIS把文件扩展名为.shtml、.shtm或.stm的任意页面都映射到这个动态链接库。打开默认Web站点的Properties对话框,在Application Setting中单击Configuration按钮,可以看到这种映射。
  
    这样,带有这些被映射的文件扩展名的页面将被传送给ssinc.dll进行处理。因此,执行页面中所有的服务器端包含语句,结果(如有的话)插入到服务器的响应中,即插入到客户端接收到的页面中。
  
    因为这些文件是映射到ssinc.dll文件而不是映射到ASP动态链接库(asp.dll)的,所以在这些页面中的所有ASP代码将被忽略并且按照原有状态传送给客户端,客户端将能够看到这些脚本。然而,在ASP 3.0版本中有一个避免这种情况的方法,稍后在讨论Server对象的Execute和Transfer方法时,研究这个方法。

标签:asp
0
投稿

猜你喜欢

  • django自定义非主键自增字段类型详解(auto increment field)

    2021-08-22 02:11:42
  • Python中six模块基础用法

    2021-03-12 18:24:30
  • Python流程控制 while循环实现解析

    2023-02-07 04:16:33
  • MySQL一键安装Shell脚本的实现

    2024-01-16 23:28:29
  • MySQL数据库中设列的默认值为Now()的介绍

    2009-03-06 17:40:00
  • YOLOv5在图片上显示统计出单一检测目标的个数实例代码

    2023-07-20 18:08:42
  • yahoo 页面的标签效果

    2024-04-10 10:38:14
  • Linux下Python安装完成后使用pip命令的详细教程

    2021-07-07 02:45:51
  • 浅谈python print(xx, flush = True) 全网最清晰的解释

    2022-01-28 21:45:48
  • golang连接MongoDB数据库及数据库操作指南

    2024-01-26 18:14:29
  • python列表推导式操作解析

    2022-08-26 04:07:39
  • JavaScript控制台的更多功能

    2024-02-24 12:46:42
  • python保存文件方法小结

    2021-09-09 04:13:59
  • HTML 5 正在改变 Web

    2008-09-15 08:20:00
  • 深入理解NumPy简明教程---数组2

    2022-03-24 05:01:18
  • Laravel中使用阿里云OSS Composer包分享

    2023-11-04 23:31:23
  • php下pdo的mysql事务处理用法实例

    2023-11-14 17:44:13
  • 巧妙规划使用Oracle数据空间

    2009-03-20 11:51:00
  • Python创建简单的神经网络实例讲解

    2021-12-02 05:38:41
  • Python中Tkinter组件Menu的具体使用

    2023-09-11 12:46:26
  • asp之家 网络编程 m.aspxhome.com