让我们从一个典型的 ./ 请求的生命周期的起点开始。用户通过在
浏览器中键入一个 6,点击一个超 链接,提交一个 '1 表单(一个 (2
请 求),或者一个客户端程序调用基于 的 ./(通 过
提供服务)。在服务器端, " 或 者 # 将会收到这个请求。
的 底层通过 扩展与 通信,然 后,通过 ,这个请
求通常被路由到一个带有2(, 扩 展名的页面。但是,这个处理过程如何工作,
则完全依赖于 ' 处理器())的执行。这个处理器将被安装用于处
理指定的扩展。在 中,2(, 经由“应用程序扩展”被映射到
的 文件:2()82(。每一 个触发 的请求,都必须经由一
个已经注册的,并且指向 2()82( 的扩展名来标识。
注:
ISAPI
是 自定义
Web
请求处理中第一个并且具有最高性能的
IIS
入 口点。
依靠扩展名, 把 一个请求路由到一个恰当的处理器,该处理器则负
责处理这个请求。举个例子,./2 的 扩展名2*, 不会把一个请求
路由到磁盘上的某一个页面,而是会路由到在定义中附加了指定特性
(./1/)的类,此特性会把它标识成一个 ./2 的
实现。许多其它的处理器将随着 一起被安装。当然 也可以定义你自
己的处理器。在 里所有的 '(') 被 映射并指向 扩
展,并且这些 '(') 也 都在 /)9: 里配置,用于把请求路由到
指定的 ' 处 理器里执行。每一个处理器都是一个 类,用于处理指定
的扩展。而这些处理器可以处理简单到只 有几行代码的 '.,也可以
处理复杂到类似 的 页面以及执行 ./。就目前而言,仅仅
需要理解扩展就是一种基本的映射机制, 用它可以从 里获取一
个请求, 然后把请求路由到指定处理该请求的处理器中。
ISAPI 连接
是底层非托管的 .) 。它定义的接口非常的单一并且性能最优。
用这些接口处理原始指针(()), 而函数指针列表(;))
()/2)则用于回调。 提供了最低层的、高性能的接口,开发
者和工具厂商可以使用这些接口深入到 里。由于 是非常低层的,所以
不太适合使 用它构建应用级的程序。 趋向于被当作桥接口使用,用于给
高层次的工具提供应用服务类型的 功能。例如, 和 都是被 当作
冷聚变(;2))构建于 之 上。大多 、' 和 < 的执行如
同许多第三方解决方案一样,可以在 运 行。 是个非常好的工具,它
给高层次的应用程序提供了高性能垂直访问接口。这使得那些高层 次的应用程
序需要的信息可以从 提供的信息中提炼。在 和 里,引擎
可以提炼 接口提供的表单里的对象如:72 和 2()2,这些对
象可以从 请求的信 息中读取它们各自的内容。
作为约定, 支 持 扩展(,)2)2) 和 过滤(92)。
扩展 是请求处理接口,提供了跟 ./ 输入和输出相关的逻辑处理。从
评论0
最新资源