
ISAPI 实用技术指南
《ISAPI 实用技术指南》是 1998年 清华大学出版社出版的图书,作者是(美)K.Clements C.Wuestefeld / 等。
基本介绍
- 书名:《ISAPI 实用技术指南》
- 作者:(美)K.Clements C.Wuestefeld / 等
- 译者:朱玉山/等
- ISBN:9787302030539
- 页数:367
- 定价:40.00元
- 出版社:清华大学出版社
- 出版时间:1998-07
- 装帧:平装
内容介绍
内容提要
本书由经验丰富的专家编写,全书针对具体任务、基于实际解决方案,详细讲述了完成IS-
API编程的各个方面,内容包括:如何从资料库中提取多媒体档案,如何开发一个讯息库,怎样
通过过滤器增强日誌,用Delphi编写与调试ISAPI程式。另外,本书通过一些生动的实例来证明
方案的有效性,针对完成特定的任务提供了可编译运行的原始码,并详细介绍了如何有效利用
过滤器的技巧来完成ISAPI应用程式,以实现功能强大的互动式Web站点的开发。通过本书你
还能针对自己项目的特殊需要提出更合理的设计。
本书面向网路套用与开发人员。
作品目录
目录
第1章 Internet信息伺服器的编程选择
1.1CGI(公共网关接口)
1.2IDC(Internet资料库连线器)
1.3其他可选择的开发工具
1.3.1OLEISAPI
1.3.2活动伺服器页面(ActiveServerPages)
1.3.3第三方解决方案
1.4基于ISAPI的解决方案
1.4.1性能
1.4.2灵活性
1.4.3扩展DLL
1.4.4过滤器
1.4.5用ISAPI编程
1.5小结
第2章 使用IDC
2.1什幺是IDC
2.2何时使用IDC
2.3IDC编程基础
2.3.1IDC档案
2.3.2.HTX档案
2.4高级IDC编程
2.4.1理解IDC 处理请求的顺序
2.4.2使用多资料库查询
2.4.3检索计算域的值
2.4.4使用多值变数
2.4.5HTML中的特殊字元处理
2.4.6保证系统的安全
2.5IIS1.x和IIS2.0之间的区别
2.5.1多资料库查询
2.5.2适当的条件嵌套
2.6小结
第3章IDC应用程式示例
3.1应用程式目标
3.1.1讯息的组织
3.1.2发布新讯息
3.1.3主题搜寻
3.1.4安全
3.2讯息库应用程式数据模型
3.2.1讯息
3.2.2议题
3.2.3用户
3.2.4空白表
3.3讯息库应用程式用户界面
3.4讯息库应用程式实现要点
3.4.1访问故障排除
3.4.2配置系统
3.4.3提供资料库中的初始数据
3.4.4通过程式传播数值
3.4.5排序讯息回响
3.4.6实现多页搜寻结果
3.5讯息库应用程式的实现
3.5.1Welcome/Login页
3.5.2MainPage
3.5.3ConferenceMessageList页
3.5.4ViewMessage页
3.5.5PostaFollow-Up页
3.5.6PostaNewTopic页
3.5.7SearchRequest页
3.5.8ViewSeachResults页
3.6小结
第4章 MFC中的基本表单处理
4.1Web表单
4.2ISAPI处理表单的优点
4.3在ISAPI表单处理中使用MFC的优点
4.4表单处理的一个简单的ISAPI扩展
4.4.1设计表单
4.4.2表单的HTML
4.4.3处理表单数据的一个ISAPI扩展
4.4.4表单处理逻辑
4.5HTML中的表单
4.5.1表单
4.5.2输入域
4.5.3选择列表
4.5.4文本区域
4.6MFCPARSE MAP
4.6.1BEGIN-PARSE-MAP
4.6.2ON-PARSE-COMMAND
4.6.3ON-PARSE-COMMAND-PARAMS
4.6.4DEFAULT-PARSE-COMMAND
4.6.5END-PARSE-COMMAND
4.7一个更高级的表单处理例子
4.7.1表单和有效验证
4.7.2进程
4.7.3调用表单
4.7.4动态产生的HTML
4.7.5处理用户的输入
4.7.6动态产生HTML的优缺点
4.8潜在的表单处理问题
4.8.1ISAPI扩展的故障排除
4.8.2GET命令问题
4.8.3mfcISAPICommand参数
4.9何时PARSEMAP不工作
4.9.1带有可变内容的表单
4.9.2多值域
4.10小结
第5章 从资料库中抽取多媒体图像
5.1动态多媒体网页创建
5.1.1在资料库中不仅仅存档图像
5.1.2生成工具
5.2MIME类型
5.2.1更多有关MIME类型的内容:StartContent()的调用
5.3嵌入ISAPI回响调用
5.3.1在一个ODBC资料库中存储BLOB
5.4图像抽取模组
5.4.1使用CRecordset抽取图像
5.4.2测试驱动mmGet扩展
5.5执行绪安全(thread-safe)的图像抽取
5.6高级话题
5.6.1扩展性,使用worker执行绪
5.6.2用信号灯最佳化执行绪访问
5.6.3在注册表中存储资料库用户的名字和口令
5.6.4增强资料库用户的许可权管理
5.6.5使用cookie保持状态
5.7ISAPI扩展的故障排除
5.8小结
第6章 开发E-mail网关
6.1SMTP概述
6.2从网页传送邮件的最简单方法
6.3捕获关键信息
6.4实现一个SMTPMailerDLL
6.4.1SMTPMailerAPI
6.4.2实现SMTPMailer
6.5SMTPMailer的测试
6.6採用SMTPMailer的ISAPI扩展
6.7LiteMailSMTP网关ISAPI扩展
6.8小结
第7章 理解LSAPI过滤器
7.1过滤器定义
7.21SAPI过滤器和扩展
7.2.1ISAPI过滤器应用程式
7.31SAPI过滤器的寿命周期
7.3.1装载和卸载过滤器
7.3.2配置过滤器
7.4ISAPI过滤器DLL入口点
7.4.1GetFilterVersion()函式
7.4.2HttpFilterProc()函式
7.5执行绪
7.5.1资源管理
7.5.2环境管理
7.6记忆体管理
7.6.1使用AllocMem()作记忆体管理
7.6.2使用通知作记忆体管理
7.7用C建立一个过滤器
7.7.1实现一个简单的过滤器
7.7.2运行过滤器
7.7.3理解过滤器输出
7.8MFC过滤器支持
7.8.1CHttpFilter
7.8.2一个基于MFC的GetFilterVersion()函式
7.8.3CHttpFilterContext类
7.9小结
第8章 用过滤器增强IIS日誌
8.1IIS日誌
8.1.1记录文本档案
8.1.2记录到资料库
8.1.3确定在何处以及如何存储数据
8.2过滤日誌事件
8.2.1过滤日誌事件的理由
8.2.2增加新域给日誌
8.2.3更改已有日誌域
8.3一个简单的日誌过滤器
8.3.1设计ISAPI日誌过滤器
8.3.2实现CExtraDataFilter::GetFilterVersion()
8.3.3用Onlog()函式处理日誌通知
8.4有效地使用日誌过滤器
8.4.1避免耗时的操作
8.4.2使用离线选择
8.5小结
第9章 基于客户浏览器重定向
9.1为什幺以用户浏览器为基础进行重定向
9.1.1最佳化站点还是使站点更具普遍性
9.1.2自动选页的手工执行
9.2用过滤器重定向
9.3用扩展重定向
9.4描述浏览器功能
9.4.1识别远程浏览器
9.4.2建立一个浏览器功能机制
9.5实现一个重定向扩展
9.5.1要求
9.5.2声明扩展类
9.5.3定义PARSEMAP
9.5.4初始化重定向扩展
9.5.5处理Ifsupported命令
9.6实现重定向过滤器
9.6.1要求
9.6.2为重定向过滤器选择通知方
9.6.3设计传送
9.6.4声明过滤器类
9.6.5实现GetFilterVersion()函式
9.6.6实现OnPreProcHeaders()函式
9.7小结
第10章 用过滤器验证
10.1验证与安全性
10.2在HTTP1.1中验证
10.2.1Challenge/Response进程
10.2.2验证方案
10.3验证和WindowsNT安全
10.3.1匿名用户
10.3.2安全环境和IIS
10.3.3NT访问许可权和验证
10.4验证过滤器
10.4.1验证过滤器做什幺
10.4.2为什幺使用验证过滤器
10.5设计和实现验证过滤器
10.5.1数据存储要求
10.5.2执行效率要求
10.5.3设计过滤器
10.5.4实现过滤器
10.6小结
第11章 高级表单处理
11.1MFCPARSEMAP的局限性
11.2MFCISAPI支持的优点
11.3设计一种机制来支持灵活表单内容
11.3.1需要的功能
11.3.2环境特徵
11.4使用未提供文档的MFC来扩展或增强MFC
11.4.1什幺是未被提供文档的MFC
11.4.2未被提供文档的MFC代码的风险和回报
11.4.3使用未被提供文档的MFC的基本原理
11.5实现处理可变表单内容的增强
11.5.1扩展CHttpServer
11.5.2用CHttpFieldTable类管理数据
11.6在一个ISAPI扩展中使用CHttpFieldServer类
11.6.1转换一个MFCISAPI扩展来使用FieldTable类
11.6.2一个域表扩展样本
11.7小结
第12章 使用BorlandDelphi2.0的ISAPI编程
12.1使用Delphi的好处
12.2ISAPI中Delphi的局限性
12.2.1在ISAPI程式中没有用户接口
12.2.2资料库问题
12.2.3缺少开发ISAPI套用的应用程式框架
12.3Delphi与C十十ISAPI编程
12.3.1数据类型对应
12.3.2MFC或其他框架不可用
12.4用Delphi写一个ISAPI应用程式
12.4.11SAPIExt单元
12.4.2在DLL中提供ISAPI应用程式入口点
12.4.3使用ECB与伺服器互动
12.4.4检索头部信息和伺服器变数
12.4.5解释请求
12.4.6传送数据给用户
12.4.7保持状态信息:使用Cookies
12.5编写一个ISAPI过滤器
12.6小结
第13章 使用DelphiISAPI应用程式框架
13.1设计目标
13.2使用ISAPI应用程式框架
13.2.1为你的扩展建立一个新项目程式
13.2.2用ISAPICOMMAND域準备HTML表单
13.2.3编写并注册一个类来处理请求
13.2.4HTTPServerContext对象
13.2.5检索表单的域值
13.2.6检索头档案信息和伺服器变数
13.2.7传送头档案给用户
13.2.8获取对参数和Cookies的直接访问
13.2.9写数据给用户
13.2.10处理异常
13.3建立一个简单的请求处理程式
13.3.1温度转换请求
13.3.2温度转换请求处理程式
13.4高级专题
13.4.1HTTPUtil工具类
13.4.2读写Cookies
13.4.3写二进制数据给用户
13.4.4直接访问特殊函式的ECB
13.5DelphiISAPI应用程式框架如何工作
13.5.1作为函式符的请求处理程式
13.5.2类注册和对象工厂
13.5.3检索输入数据
13.5.4保存和传送头部
13.5.5异常结构
13.6小结
第14章 调试ISAPI过滤器
14.1重入
14.2代码的关键部分(Critica1Section)
14.3记忆体泄漏
14.4在WindowsNT下调试
14.4.1在调试器中浏览代码
14.4.2建立调试
14.4.3在调试器中装入Web伺服器
14.4.4用OutputDebugString()函式调试
14.4.5用MessageBox()函式调试
14.4.6更方便的调试方法提示
14.4.7用ISMOKE.EXE调试
14.4.8用CGIWRAP调试
14.5使之完善
14.5.1ASSERT语句
14.5.2运行时调试库
14.5.3提供错误讯息
14.5.4强化测试
14.5.5用Hammer强化测试
14.6小结
附录AISAPI函式、结构和常量
A.1扩展
A.1.1DLL入口
A.1.2回调
A.2过滤器
A.2.1DLL入口点
A.2.2回调
附录B建立一个系统数据源名
B.1增加一个系统数据源名
B.2配置一个访问系统数据源名
B.3配置SQL伺服器的系统DSN
附录C HTTP状态码
附录D 伺服器变数
附录E 常用的头部
附录F 光碟上有什幺?
F.1原始码
F.2开发工具
F.3文献
F.4ISAPI组件
F.5网路连结
第1章 Internet信息伺服器的编程选择
1.1CGI(公共网关接口)
1.2IDC(Internet资料库连线器)
1.3其他可选择的开发工具
1.3.1OLEISAPI
1.3.2活动伺服器页面(ActiveServerPages)
1.3.3第三方解决方案
1.4基于ISAPI的解决方案
1.4.1性能
1.4.2灵活性
1.4.3扩展DLL
1.4.4过滤器
1.4.5用ISAPI编程
1.5小结
第2章 使用IDC
2.1什幺是IDC
2.2何时使用IDC
2.3IDC编程基础
2.3.1IDC档案
2.3.2.HTX档案
2.4高级IDC编程
2.4.1理解IDC 处理请求的顺序
2.4.2使用多资料库查询
2.4.3检索计算域的值
2.4.4使用多值变数
2.4.5HTML中的特殊字元处理
2.4.6保证系统的安全
2.5IIS1.x和IIS2.0之间的区别
2.5.1多资料库查询
2.5.2适当的条件嵌套
2.6小结
第3章IDC应用程式示例
3.1应用程式目标
3.1.1讯息的组织
3.1.2发布新讯息
3.1.3主题搜寻
3.1.4安全
3.2讯息库应用程式数据模型
3.2.1讯息
3.2.2议题
3.2.3用户
3.2.4空白表
3.3讯息库应用程式用户界面
3.4讯息库应用程式实现要点
3.4.1访问故障排除
3.4.2配置系统
3.4.3提供资料库中的初始数据
3.4.4通过程式传播数值
3.4.5排序讯息回响
3.4.6实现多页搜寻结果
3.5讯息库应用程式的实现
3.5.1Welcome/Login页
3.5.2MainPage
3.5.3ConferenceMessageList页
3.5.4ViewMessage页
3.5.5PostaFollow-Up页
3.5.6PostaNewTopic页
3.5.7SearchRequest页
3.5.8ViewSeachResults页
3.6小结
第4章 MFC中的基本表单处理
4.1Web表单
4.2ISAPI处理表单的优点
4.3在ISAPI表单处理中使用MFC的优点
4.4表单处理的一个简单的ISAPI扩展
4.4.1设计表单
4.4.2表单的HTML
4.4.3处理表单数据的一个ISAPI扩展
4.4.4表单处理逻辑
4.5HTML中的表单
4.5.1表单
4.5.2输入域
4.5.3选择列表
4.5.4文本区域
4.6MFCPARSE MAP
4.6.1BEGIN-PARSE-MAP
4.6.2ON-PARSE-COMMAND
4.6.3ON-PARSE-COMMAND-PARAMS
4.6.4DEFAULT-PARSE-COMMAND
4.6.5END-PARSE-COMMAND
4.7一个更高级的表单处理例子
4.7.1表单和有效验证
4.7.2进程
4.7.3调用表单
4.7.4动态产生的HTML
4.7.5处理用户的输入
4.7.6动态产生HTML的优缺点
4.8潜在的表单处理问题
4.8.1ISAPI扩展的故障排除
4.8.2GET命令问题
4.8.3mfcISAPICommand参数
4.9何时PARSEMAP不工作
4.9.1带有可变内容的表单
4.9.2多值域
4.10小结
第5章 从资料库中抽取多媒体图像
5.1动态多媒体网页创建
5.1.1在资料库中不仅仅存档图像
5.1.2生成工具
5.2MIME类型
5.2.1更多有关MIME类型的内容:StartContent()的调用
5.3嵌入ISAPI回响调用
5.3.1在一个ODBC资料库中存储BLOB
5.4图像抽取模组
5.4.1使用CRecordset抽取图像
5.4.2测试驱动mmGet扩展
5.5执行绪安全(thread-safe)的图像抽取
5.6高级话题
5.6.1扩展性,使用worker执行绪
5.6.2用信号灯最佳化执行绪访问
5.6.3在注册表中存储资料库用户的名字和口令
5.6.4增强资料库用户的许可权管理
5.6.5使用cookie保持状态
5.7ISAPI扩展的故障排除
5.8小结
第6章 开发E-mail网关
6.1SMTP概述
6.2从网页传送邮件的最简单方法
6.3捕获关键信息
6.4实现一个SMTPMailerDLL
6.4.1SMTPMailerAPI
6.4.2实现SMTPMailer
6.5SMTPMailer的测试
6.6採用SMTPMailer的ISAPI扩展
6.7LiteMailSMTP网关ISAPI扩展
6.8小结
第7章 理解LSAPI过滤器
7.1过滤器定义
7.21SAPI过滤器和扩展
7.2.1ISAPI过滤器应用程式
7.31SAPI过滤器的寿命周期
7.3.1装载和卸载过滤器
7.3.2配置过滤器
7.4ISAPI过滤器DLL入口点
7.4.1GetFilterVersion()函式
7.4.2HttpFilterProc()函式
7.5执行绪
7.5.1资源管理
7.5.2环境管理
7.6记忆体管理
7.6.1使用AllocMem()作记忆体管理
7.6.2使用通知作记忆体管理
7.7用C建立一个过滤器
7.7.1实现一个简单的过滤器
7.7.2运行过滤器
7.7.3理解过滤器输出
7.8MFC过滤器支持
7.8.1CHttpFilter
7.8.2一个基于MFC的GetFilterVersion()函式
7.8.3CHttpFilterContext类
7.9小结
第8章 用过滤器增强IIS日誌
8.1IIS日誌
8.1.1记录文本档案
8.1.2记录到资料库
8.1.3确定在何处以及如何存储数据
8.2过滤日誌事件
8.2.1过滤日誌事件的理由
8.2.2增加新域给日誌
8.2.3更改已有日誌域
8.3一个简单的日誌过滤器
8.3.1设计ISAPI日誌过滤器
8.3.2实现CExtraDataFilter::GetFilterVersion()
8.3.3用Onlog()函式处理日誌通知
8.4有效地使用日誌过滤器
8.4.1避免耗时的操作
8.4.2使用离线选择
8.5小结
第9章 基于客户浏览器重定向
9.1为什幺以用户浏览器为基础进行重定向
9.1.1最佳化站点还是使站点更具普遍性
9.1.2自动选页的手工执行
9.2用过滤器重定向
9.3用扩展重定向
9.4描述浏览器功能
9.4.1识别远程浏览器
9.4.2建立一个浏览器功能机制
9.5实现一个重定向扩展
9.5.1要求
9.5.2声明扩展类
9.5.3定义PARSEMAP
9.5.4初始化重定向扩展
9.5.5处理Ifsupported命令
9.6实现重定向过滤器
9.6.1要求
9.6.2为重定向过滤器选择通知方
9.6.3设计传送
9.6.4声明过滤器类
9.6.5实现GetFilterVersion()函式
9.6.6实现OnPreProcHeaders()函式
9.7小结
第10章 用过滤器验证
10.1验证与安全性
10.2在HTTP1.1中验证
10.2.1Challenge/Response进程
10.2.2验证方案
10.3验证和WindowsNT安全
10.3.1匿名用户
10.3.2安全环境和IIS
10.3.3NT访问许可权和验证
10.4验证过滤器
10.4.1验证过滤器做什幺
10.4.2为什幺使用验证过滤器
10.5设计和实现验证过滤器
10.5.1数据存储要求
10.5.2执行效率要求
10.5.3设计过滤器
10.5.4实现过滤器
10.6小结
第11章 高级表单处理
11.1MFCPARSEMAP的局限性
11.2MFCISAPI支持的优点
11.3设计一种机制来支持灵活表单内容
11.3.1需要的功能
11.3.2环境特徵
11.4使用未提供文档的MFC来扩展或增强MFC
11.4.1什幺是未被提供文档的MFC
11.4.2未被提供文档的MFC代码的风险和回报
11.4.3使用未被提供文档的MFC的基本原理
11.5实现处理可变表单内容的增强
11.5.1扩展CHttpServer
11.5.2用CHttpFieldTable类管理数据
11.6在一个ISAPI扩展中使用CHttpFieldServer类
11.6.1转换一个MFCISAPI扩展来使用FieldTable类
11.6.2一个域表扩展样本
11.7小结
第12章 使用BorlandDelphi2.0的ISAPI编程
12.1使用Delphi的好处
12.2ISAPI中Delphi的局限性
12.2.1在ISAPI程式中没有用户接口
12.2.2资料库问题
12.2.3缺少开发ISAPI套用的应用程式框架
12.3Delphi与C十十ISAPI编程
12.3.1数据类型对应
12.3.2MFC或其他框架不可用
12.4用Delphi写一个ISAPI应用程式
12.4.11SAPIExt单元
12.4.2在DLL中提供ISAPI应用程式入口点
12.4.3使用ECB与伺服器互动
12.4.4检索头部信息和伺服器变数
12.4.5解释请求
12.4.6传送数据给用户
12.4.7保持状态信息:使用Cookies
12.5编写一个ISAPI过滤器
12.6小结
第13章 使用DelphiISAPI应用程式框架
13.1设计目标
13.2使用ISAPI应用程式框架
13.2.1为你的扩展建立一个新项目程式
13.2.2用ISAPICOMMAND域準备HTML表单
13.2.3编写并注册一个类来处理请求
13.2.4HTTPServerContext对象
13.2.5检索表单的域值
13.2.6检索头档案信息和伺服器变数
13.2.7传送头档案给用户
13.2.8获取对参数和Cookies的直接访问
13.2.9写数据给用户
13.2.10处理异常
13.3建立一个简单的请求处理程式
13.3.1温度转换请求
13.3.2温度转换请求处理程式
13.4高级专题
13.4.1HTTPUtil工具类
13.4.2读写Cookies
13.4.3写二进制数据给用户
13.4.4直接访问特殊函式的ECB
13.5DelphiISAPI应用程式框架如何工作
13.5.1作为函式符的请求处理程式
13.5.2类注册和对象工厂
13.5.3检索输入数据
13.5.4保存和传送头部
13.5.5异常结构
13.6小结
第14章 调试ISAPI过滤器
14.1重入
14.2代码的关键部分(Critica1Section)
14.3记忆体泄漏
14.4在WindowsNT下调试
14.4.1在调试器中浏览代码
14.4.2建立调试
14.4.3在调试器中装入Web伺服器
14.4.4用OutputDebugString()函式调试
14.4.5用MessageBox()函式调试
14.4.6更方便的调试方法提示
14.4.7用ISMOKE.EXE调试
14.4.8用CGIWRAP调试
14.5使之完善
14.5.1ASSERT语句
14.5.2运行时调试库
14.5.3提供错误讯息
14.5.4强化测试
14.5.5用Hammer强化测试
14.6小结
附录AISAPI函式、结构和常量
A.1扩展
A.1.1DLL入口
A.1.2回调
A.2过滤器
A.2.1DLL入口点
A.2.2回调
附录B建立一个系统数据源名
B.1增加一个系统数据源名
B.2配置一个访问系统数据源名
B.3配置SQL伺服器的系统DSN
附录C HTTP状态码
附录D 伺服器变数
附录E 常用的头部
附录F 光碟上有什幺?
F.1原始码
F.2开发工具
F.3文献
F.4ISAPI组件
F.5网路连结