《ISAPI实用技术指南》求取 ⇩

第1章 Internet信息服务器的编程选择1

1.1 CGI(公共网关接口)1

1.2 IDC(Internet数据库连接器)2

1.3 其他可选择的开发工具2

1.3.1 OLEISAPI2

1.3.2 活动服务器页面(Active Server pages)3

1.3.3 第三方解决方案3

1.4 基于ISAPI的解决方案4

1.4.1 性能5

1.4.2 灵活性6

1.4.3 扩展DLL6

1.4.4 过滤器7

1.4.5 用ISAPI编程9

1.5 小结11

第2章 使用IDC12

2.1 什么是IDC12

2.2 何时使用IDC12

2.3 IDC编程基础13

2.3.1 IDC文件14

2.3.2 HTX文件17

2.4 高级IDC编程22

2.4.1 理解IDC处理请求的顺序22

2.4.2 使用多数据库查询24

2.4.3 检索计算域的值25

2.4.4 使用多值变量25

2.4.5 HTML中的特殊字符处理27

2.4.6 保证系统的安全28

2.5 IIX 1.x和IIS 2.0之间的区别29

2.5.1 多数据库查询29

2.5.2 适当的条件嵌套29

2.6 小结29

第3章 IDC应用程序示例30

3.1 应用程序目标30

3.1.1 消息的组织30

3.1.2 发布新消息30

3.1.3 主题搜索30

3.2 消息库应用程序数据模型31

3.1.4 安全31

3.2.1 消息32

3.2.2 议题32

3.2.3 用户33

3.2.4 空白表33

3.3 消息库应用程序用户界面34

3.4.2 配置系统35

3.4.3 提供数据库中的初始数据35

3.4.1 访问故障排除35

3.4 消息库应用程序实现要点35

3.4.4 通过程序传播数值36

3.4.5 排序消息响应36

3..4.6 实现多页搜索结果38

3.5 消息库应用程序的实现39

3.5.1 Welcome/Login页40

3.5.2 Main Page41

3.5.3 Conference Message List页44

3.5.4 View Mseeage页48

3.5.5 Post a Follow-Up页54

3.5.6 Post a New Topic页58

3.5.7 Search Request页62

3.5.8 View Seach Results页64

3.6 小结69

第4章 MFC中的基本表单处理70

4.1 Web表单70

4.2 ISAPI处理表单的优点71

4.3 在ISAPI表单处理中使用MFC的优点72

4.4 表单处理的一个简单的ISAPI扩展73

4.4.1 设计表单73

4.4.2 表单的HTML74

4.4.3 处理表单数据的一个ISAPI扩展76

4.4.4 表单处理逻辑77

4.5 HTML中的表单80

4.5.1 表单80

4.5.2 输入域81

4.5.3 选择列表84

4.5.4 文本区域85

4.6 MFC PARSEMAP85

4.6.2 ON-PARSE-COMMAND86

4.6.3 ON-PARSE-COMMAND-PARAMS86

4.6.1 BECIN-PARSE-MAP86

4.6.4 DEFAULT-PARSE-COMMAND87

4.6.5 END-PARSE-COMMAND88

4.7 一个更高级的表单处理例子88

4.7.1 表单和有效验证88

4.7.2 进程88

4.7.3 调用表单89

4.7.4 动态产生的HTML90

4.7.5 处理用户的输入94

4.7.6 动态产生HTML的优缺点98

4.8 潜在的表单处理问题99

4.8.1 ISAPI扩展的故障排除99

4.8.2 GET命令问题100

4.8.3 mfcISAPICommand参数100

4.9 何时PARSE MAP不工作101

4.9.1 带有可变内容的表单101

4.9.2 多值域102

4.10 小结103

5.1 动态多媒体网页创建104

第5章 从数据库中抽取多媒体图像104

5.1.1 在数据库中不仅仅存档图像105

5.1.2 生成工具105

5.2 MIME类型105

5.2.1 更多有关MIME类型的内容:StartContetn()的调用106

5.3 嵌入ISAPI响应调用107

5.3.1 在一个ODBC数据库中存储BLOB107

5.4 图像抽取模块109

5.4.1 使用CRecordset抽取图像112

5.4.2 测试驱动mmGet扩展116

5.5 线程安全(thread-safe)的图像抽取118

5.6 高级话题122

5.6.1 扩展性,使用worker线程122

5.6.2 用信号灯优化线程访问123

5.6.3 在注册表中存储数据库用户的名字和口令123

5.6.4 增强数据库用户的权限管理123

5.6.5 使用cookie保持状态123

5.7 ISAPI扩展的故障排除124

5.8 小结124

6.1 SMTP概述126

第6章 开发E-mail网关126

6.2 从网页发送邮件的最简单方法128

6.3 捕获关键信息129

6.4 实现一个SMTP Mailer DLL129

6.4.1 SMTP Mailer API131

6.4.2 实现SMTP Mailer133

6.5 SMTP Mailer的测试140

6.6 采用SMTP Mailer的ISAPI扩展141

6.7 LiteMail SMTP网关ISAPI扩展143

6.8 小结149

第7章 理解ISAPI过滤器150

7.1 过滤器定义150

7.2 ISAPI过滤器和扩展150

7.2.1 ISAPI过滤器应用程序150

7.3 ISAPI过滤器的寿命周期151

7.3.1 装载和卸载过滤器151

7.3.2 配置过滤器152

7.4 ISAPI过滤器DLL人口点154

7.4.1 GetFilterVersion()函数154

7.4.2 HttpFilterProc()函数155

7.5 线程163

7.5.1 资源管理163

7.5.2 环境管理163

7.6 内存管理164

7.6.1 使用AllocMem()作内存管理164

7.6.2 使用通知作内存管理165

7.7 用C建立一个过滤器166

7.7.1 实现一个简单的过滤器166

7.7.2 运行过滤器171

7.7.3 理解过滤器输出172

7.8 MFC过滤器支持174

7.8.1 CHttpFilter174

7.8.2 一个基于MFC的GetFilterVersion()函数175

7.8.3 CHttpFilterContext类178

7.9 小结178

第8章 用过滤器增强IIS日志179

8.1 IIS日志179

8.1.1 记录文本文件179

8.1.2. 记录到数据库181

8.2.1 过滤日志事件的理由182

8.2 过滤日志事件182

8.1.3 确定在何处以及如何存储数据182

8.2.2 增加新域给日志183

8.2.3 更改已有日志域184

8.3 一个简单的日志过滤器184

8.3.1 设计ISAPI日志过滤器185

8.3.2 实现CExtraDataFilter::GetFilterVersion()185

8.3.3 用Onlog()函数处理日志通知186

8.4 有效地使用日志过滤器187

8.4.2 使用离线选择188

8.4.1 避免耗时的操作188

8.5 小结189

第9章 基于客户浏览器重定向190

9.1 为什么以用户浏览器为基础进行重定向190

9.1.1 优化站点还是使站点更具善遍性190

9.1.2 自动选页的手工执行191

9.2 用过滤器重定向192

9.3 用扩展重定向192

9.4.1 识别远程浏览器193

9.4 描述浏览器功能193

9.4.2 建立一个浏览器功能机制194

9.5 实现一个重定向扩展205

9.5.1 要求205

9.5.2 声明扩展类205

9.5.3 定义PARSEMAP206

9.5.4 初始化重定向扩展206

9.5.5 处理IfSupported命令208

9.6.1 要求210

9.6 实现重定向过滤器210

9.6.2 为重定向过滤器选择通知方法211

9.6.3 设计发送211

9.6.4 声明过滤器类211

9.6.5 实现GetFilterVersion()函数212

9.6.6 实现OnPreProcHeaders()函数213

9.7 小结214

第10章 用过滤器验证215

10.1 验证与安全性215

10.2 在HTTP1.1中验证216

10.2.1 Challenge/Response进程216

10.2.2 验证方案218

10.3 验证和Windows NT安全220

10.3.1 匿名用户221

10.3.2 安全环境和IIS221

10.3.3 NT访问权限和验证221

10.4 验证过滤器222

10.4.1 验证过滤器做什么222

10.4.2 为什么使用验证过滤器222

10.5.2 执行效率要求223

10.5.1 数据存储要求223

10.5 设计和实现验证过滤器223

10.5.3 设计过滤器224

10.5.4 实现过滤器224

10.6 小结233

第11章 高级表单处理234

11.1 MFC PARSEMAP的局限性234

11.2 MFC ISAPI支持的优点234

11.3.1 需要的功能235

11.3.2 环境特征235

11.3 设计一种机制来支持灵活表单内容235

11.4 使用未提供文档的MFC来扩展或增强MFC237

11.4.1 什么是未被提供文档的MFC238

11.4.2 未被提供文档的MFC代码的风险和回报238

11.4.3 使用未被提供文档的MFC的基本原理238

11.5 实现处理可变表单内容的增强239

11.5.1 扩展CHttpServer239

11.5.2 用CHttpFieldTable类管理数据245

11.6.2 一个域表扩展样本257

11.6.1 转换一个MFC ISAPI扩展来使用FieldTable类257

11.6 在一个ISAPI扩展中使用CHttpFieldServer类257

11.7 小结260

第12章 使用Borland Delphi 2.0的ISAPI编程261

12.1 使用Delphi的好处261

12.2 ISAPI中Delphi的局限性261

12.2.1 在ISAPI程序中没有用户接口262

12.2.2 数据库问题262

12.2.3 缺少开发ISAPI应用的应用程序框架262

12.3 Delphi与C+ +ISAPI编程262

12.4 用Delphi写一个ISAPI应用程序263

12.3.2 MFC或其他框架不可用263

12.3.1 数据类型对应263

12.4.1 ISAPIExt单元264

12.4.2 在DLL中提供ISAPI应用程序入口点266

12.4.3 使用ECB与服务器交互269

12.4.4 检索头部信息和服务器变量269

12.4.5 解释请求270

12.4.6 发送数据给用户271

12.4.7 保持状态信息:使用Cookies273

12.6 小结275

12.5 编写一个ISAPI过滤器275

第13章 使用Delphi ISAPI应用程序框架276

13.1 设计目标276

13.2 使用ISAPI应用程序框架277

13.2.1 为你的扩展建立一个新项目程序277

13.2.2 用ISAPICOMMAND域准备HTML表单277

13.2.3 编写并注册一个类来处理请求278

13.2.4 HTTPServerContext对象280

13.2.5 检索表单的域值281

13.2.7 发送头文件给用户282

13.2.6 检索头文件信息和服务器变量282

13.2.8 获取对参数和Cookies的直接访问283

13.2.9 写数据给用户285

13.1.10 处理异常285

13.3 建立一个简单的请求处理程序286

13.3.1 温度转换请求286

13.3.2 温度转换请求处理程序287

13.4 高级专题291

13.4.1 HTTPUtil工具类291

13.4.2 读写Cookies293

13.4.3 写二进制数据给用户294

13.4.4 直接访问特殊函数的ECB294

13.5 Delphi ISAPI应用程序框架如何工作294

13.5.1 作为函数符的请求处理程序295

13.5.2 类注册和对象工厂297

13.5.3 检索输入数据301

13.5.4 保存和发送头部314

13.5.5 异常结构319

13.6 小结323

14.1 重入324

第14章 调试ISAPI过滤器324

14.2 代码的关键部分(Critical Section)325

14.3 内存泄漏326

14.4 在Windows NT下调试326

14.4.1 在调试器中浏览代码327

14.4.2 建立调试327

14.4.3 在调试器装入Web服务器327

14.4.4 用OutputDebugString()函数调试327

14.4.5 用MessageBox()函数调试328

14.4.6 更方便的调试方法提示328

14.5 使之完善329

14.4.7 用ISMOKE.EXE调试329

14.4.8 用CGIWRAP调试329

14.5.1 ASSERT语句330

14.5.2 运行时调试库331

14.5.3 提供错误消息332

14.5.4 强化测试332

14.5.5 用Hammer强化测试333

14.6 小结340

A.1.1 DLL入口341

附录A ISAPI函数、结构和常量341

A.1 扩展341

A.1.2 回调343

A.2 过滤器346

A.2.1 DLL入口点346

A.2.2 回调352

附录B 建立一个系统数据源名357

B.1 增加一个系统数据源名357

B.2 配置一个访问系统数据源名358

附录C HTTP状态码360

附录D 服务器变量362

附录E 常用的头部363

附录F 光盘上有什么?365

F.1 源代码365

F.2 开发工具365

F.3 文献365

F.4 ISAPI组件366

F.5 网络链接366

B.3 配置SQL服务器的系统DSN369

1998《ISAPI实用技术指南》由于是年代较久的资料都绝版了,几乎不可能购买到实物。如果大家为了学习确实需要,可向博主求助其电子版PDF文件(由(美)(K.克莱门茨)(K.Clements)著;朱玉山,王 1998 北京:清华大学出版社 出版的版本) 。对合法合规的求助,我会当即受理并将下载地址发送给你。

高度相关资料

土肥实用技术指南(1994 PDF版)
土肥实用技术指南
1994 北京:中国农业科技出版社
PC/Pentium 实用技术指南(1997年03月第1版 PDF版)
PC/Pentium 实用技术指南
1997年03月第1版 清华大学出版社
蔬菜育苗实用技术指南( PDF版)
蔬菜育苗实用技术指南
武汉:湖北科学技术出版社
UNIX系统安全实用技术指南(1992 PDF版)
UNIX系统安全实用技术指南
1992 北京:电子工业出版社
数字技术实验指南(1979 PDF版)
数字技术实验指南
1979 北京:人民教育出版社
蚕桑实用技术指南(1991 PDF版)
蚕桑实用技术指南
1991 北京:气象出版社
PCR技术实验指南(1998 PDF版)
PCR技术实验指南
1998 北京:科学出版社
Internet入网指南与实用技术(1997 PDF版)
Internet入网指南与实用技术
1997 北京:中国铁道出版社
21天学通Visual J++(1998 PDF版)
21天学通Visual J++
1998 人民邮电出版社;西蒙与舒斯特国际出版公司
DOS操作系统实用技术指南(1997 PDF版)
DOS操作系统实用技术指南
1997 北京:北京科学技术出版社
TCP/IP实用技术指南 第2版(1997 PDF版)
TCP/IP实用技术指南 第2版
1997 清华大学出版社;西蒙与舒斯特国际出版公司
副词(1997 PDF版)
副词
1997 北京:外语教学与研究出版社
真空技术实用指南(1988 PDF版)
真空技术实用指南
1988 北京:国防工业出版社
实用建筑技术指南(1992 PDF版)
实用建筑技术指南
1992 西安:陕西科学技术出版社
实用技术:Windows NT TCP/IP实用指南(1999 PDF版)
实用技术:Windows NT TCP/IP实用指南
1999 北京:电子工业出版社