第1章 Internet信息服务器的编程选择
1. 1 CGI(公共网关接口)
1. 2 IDC(Internet数据库连接器)
1. 3 其他可选择的开发工具
1. 3. 1 OLEISAPl
1. 3. 2 活动服务器页面(Active Server Pa8es)
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. 3 IDC编程基础
2. 3. 1 IDC文件
2. 3. 2 . HTX文件
2. 4 高级IDC编程
2. 4. 1 理解IDC处理请求的顺序
2. 4. 2 使用多数据库查询
2. 4. 3 检索计算域的值
2. 4. 4 使用多值变量
2. 4. 5 HTML中的特殊字符处理
2. 4. 6 保证系统的安全
2. 5 IISl. x和IIS 2. o之间的区别
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. 1 welcome/Login页
3. 5. 2 Main Page
3. 5. 3 Conference Message List页
3. 5. 4 View Message页
3. 5. 5 Post a Fo11ow—Up页
3. 5. 6 Post a New Topic页
3. 5. 7 Search Reqnest页
3. 5. 8 ViewSeach Results页
3. 6 小结
第4章 MFC中的基本表单处理
4. 1 Web表单
4. 2 ISAPI处理表单的优点
4. 3 在ISAPI表单处理中使用MFC的优点
4. 4 表单处理的一个简单的ISAPI扩展
4. 4. 1 设计表单
4. 4. 2 表单的HTML
4. 4. 3 处理表单数据的一个ISAPI扩展
4. 4. 4 表单处理逻辑
4. 5 HTML中的表单
4. 5. 1 表单
4. 5. 2 输入域
4. 5. 3 选择列表
4. 5. 4 文本区域
4. 6 MFC PARSEMAP
4. 6. 1 BEGIN-PARSE-MAP
4. 6. 2 ON-PARSE-COMMAND
4. 6. 3 ON-PARSE-COMMAND-PARAMS
4. 6. 4 DEFAULT—PARSE—COMMAND
4. 6. 5 END—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. 1 ISAPI扩展的故障排除
4. 8. 2 GET命令问题
4. 8. 3 mfcISAPIConnnnnd参数
4. 9 何时PARSE MAP不工作
4. 9. 1 带有可变内容的表单
4. 9. 2 多值域
4. 10 小结
第5章 从数据库中抽取多媒体图像
5. 1 动态多媒体网页创建
5. 1. 1 在数据库中不仅仅存档图像
5. 1. 2 生成工具
5. 2 MIME类型
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. 7 ISAPI扩展的故障排除
5. 8 小结
第6章 开发E—mail网关
6. 1 SMTP概述
6. 2 从网页发送邮件的最简单方法
6. 3 捕获关键信息
6. 4 实现一个SMTP Mailer DLL
6. 4. 1 SMTP Mailer API
6. 4. 2 实现SMTP Mailer
6. 5 SMTP Mailer的测试
6. 6 采用SMTP Mailer的ISAPI扩展
6. 7 LiteMail SMTP网关ISAPI扩展
6. 8 小结
第7章 理解ISAPI过滤器
7. 1 过滤器定义
7. 2 ISAPI过滤器和扩展
7. 2. 1 ISAPI过滤器应用程序
7. 3 ISAPI过滤器的寿命周期
7. 3. 1 装载和卸载过滤器
7. 3. 2 配置过滤器
7. 4 ISAPI过滤器DLL入口点
7. 4. 1 GetFilter Version()函数
7. 4. 2 HttpFilterProc()函数
7. 5 线程
7. 5. 1 资源管理
7. 5. 2 环境管理
7. 6 内存管理
7. 6. 1 使用A11ocMem()作内存管理
7. 6. 2 使用通知作内存管理
7. 7 用C建立一个过滤器
7. 7. 1 实现一个简单的过滤器
7. 7. 2 运行过滤器
7. 7. 3 理解过滤器输出
7. 8 MFC过滤器支持
7. 8. 1 CHttpFilter
7. 8. 2 一个基于MFC的GetFilterVersion()函数
7. 8. 3 CHttPFilterContext类
7. 9 小结
第8章 用过滤器增强IIS日志
8. 1 IIS日志
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. l 为什么以用户浏览器为基础进行重定向
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 在HTTPl. 1中验证
10. 2. 1 Challenge/Response进程
10. 2. 2 验证方案
10. 3 验证和Windows NT安全
10. 3. 1 匿名用户
10. 3. 2 安全环境和IIS
10. 3. 3 NT访问权限和验证
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. 1 MFCPARSEMAP的局限性
11. 2 MFC ISAPI支持的优点
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扩展中使用CHttpFieUServer类
11. 6. 1 转换一个MFCISAH扩展来使用FieldTable类
11. 6. 2 一个域表扩展样本
11. 7 小结
第12章 使用BorEandDelphi 2. 0的ISAU编程
12. 1 使用Delphi的好处
12. 2 ISAPI中Delphi的局限性
12. 2. 1 在ISAPI程序中没有用户接口
12. 2. 2 数据库问题
12. 2. 3 缺少开发ISAPI应用的应用程序框架
12. 3 Delphi与C十十ISAPI贝编程
12. 3. 1 数据类型对应
12. 3. 2 MFC或其他框架不可用
12. 4 用Delphi写一个ISAPI应用程序
12. 4. 1 ISAPIExt单元
12. 4. 2 在DLL中提供ISAPI应用程序入口点
12. 4. 3 使用ECB与服务器交互
12. 4. 4 检索头部信息和履务器变量
12. 4. 5 解释请求
12. 4. 6 发送数据给用户
12. 4. 7 保持状态信息:使用Cookkies
12. 5 编写一个ISAPI过滤器
12. 6 小结
第13章 使用Delphi ISAPI应用程序框架
13. l 设计目标
13. 2 使用ISAH应用程序框架
13. 2. 1 为你的扩展建立一个新项目程序
13. 2. 2 用ISAPICOMMAND域准备HTML表单
13. 2. 3 编写并注册一个类来处理请求
13. 2. 4 HTTPServerContext对象
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. 1 HTTPUtil工具类
13. 4. 2 读写Cookies
13. 4. 3 写二进制数据给用户
13. 4. 4 直接访问特殊函数的ECL
13. 5 DelphiISAPI应用程序框架如何工作
13. 5. 1 作为函数符的请求处理程序
13. 5. 2 类注册和对象工厂
13. 5. 3 检索输入数据
13. 5. 4 保存和发送头部
13. 5. 5 异常结构
13. 6 小结
第14章 调试ISAPI过滤器
14. 1 重入
14. 2 代码的关键部分(CriticalSection)
14. 3 内存泄漏
14. 4 在Windows NT下调试
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. 1 ASSERT语句
14. 5. 2 运行时调试库
14. 5. 3 提供错误消息
14. 5. 4 强化测试
14. 5. 5 用Hammer强化测试
14. 6 小结
附录A ISAPI函数. 结构和常量
A. 1 扩展
A. 1. 1 DLL入口
A. 1. 2 回调
A. 2 过滤器
A. 2. 1 DLL入口点
A. 2. 2 回调
附录B 建立一个系统数据源名
B. 1 增加一个系统数据源名
B. 2 配置一个访问系统数据源名
B. 3 配置SQL服务器的系统DSN
附录C HTTP状态码
附录D 服务器变量
附录E 常用的头部
附录F 光盘上有什么
F. 1 源代码
F. 2 开发工具
F. 3 文献
F. 4 ISAPI组件
F. 5 网络链接