《ISAPI/NSAPI Web高级编程》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:(美)(T.贝弗里奇)Tony Beveridge,(美)(P.麦克格拉尚)Paul McGlashan著;前导工作室译
  • 出 版 社:北京:中国水利水电出版社
  • 出版年份:1999
  • ISBN:7801248422
  • 页数:427 页
图书介绍:

致谢 1

引言 1

第一章 HTTP 1

1.1 背景 1

译者序 1

1.1.1 HTTP0.9 3

1.1.2 HTTP1.0 3

1.1.3 HTTP1.1 4

1.1.4 HTTPng 5

1.2 URL及其有关形式 5

1.2.2 HTTP URL 6

1.2.1 URL 6

1.2.3 绝对URL和路径 7

1.2.4 相对URL 8

1.2.5 URL编码 8

1.3 基本协议 8

1.3.1 HTTP:一个无态、应用层协议 9

1.3.2 TCP作为传输协议 10

1.3.3HTTP:一个媒体无关、面向对象协议 10

1.4 请求周期 10

1.6 消息 12

1.5 注意 12

1.6.1 消息标题 13

1.6.2 普通标题 13

1.7 请求 14

1.7.1 请求标题 15

1.7.2 GET请求的例子 16

1.8 响应 17

1.8.1 状态码 17

1.8.2 响应标题 18

1.8.3 实体标题 19

1.8.4 GET响应的例子 22

1.9 请求方法 23

1.9.1 GET 23

1.9.2 HEAD 24

1.9.3 POST 24

1.9.4 PUT 27

1.10 媒体类型 27

1.10.1 通用媒体类型 27

1.10.2 浏览器对媒体类型的解释 29

1.10.3 浏览器plug-ins处理媒体类型 30

1.11 HTTP与MIME的关系 30

1.11.1 访问认证 31

1.11.2 基本认证方法 32

1.11.3 BASE64编码 34

1.11.4 摘要认证(Digest Authentication) 36

1.12 小结 36

第二章 Web Server 技术 38

2.1 典型Web Server结构 40

2.1.1 Server操作 41

2.1.2 Web Server的实现 42

2.2 通用网关接口(CGI) 43

2.2.1 CGI环境变量 44

2.2.2 CGI URL 45

2.2.3 CGI的输入 46

2.2.4 CGI的输出 47

2.3 进程内(In-Process)扩充 47

2.4 CGI和进程内扩充的比较 48

2.5 Fast CGI 49

2.6 Netscape Plug-in 50

2.7 Microsoft ISAPI过滤器和ISA扩充 51

2.7.1 ISA扩充 51

2.7.2 ISAPI过滤器 52

2.8 小结 53

第三章 Netscape Server API 54

3.1 Netscape Server结构 54

3.1.1 UNIX 54

3.1.2 Windows NT 56

3.1.3 请求是如何处理的 58

3.1.4 请求处理顺序 58

3.2 配置文件 60

3.2.1 Server配置文件:magnus.conf 60

3.2.2 对象配置文件:obj.conf 62

3.2.3 mime.types文件 66

3.3 小结 67

第四章 NSAPI扩充函数基础 68

4.1 NSAPI包含的文件 68

4.2 NSAPI的存储管理 68

4.2.1 分配临时空间 69

4.2.2 分配永久存储空间 70

4.3 Pblock结构 70

4.3.1 pblock_find 71

4.3.2 pblock_findval 71

4.3.3 pblock_pblockzstr 72

4.3.4 pblock_nvinsert/pblock_nninsert 72

4.4 Session结构 73

4.3.5 pblock_remove 73

4.4.1 netbuf结构 75

4.4.2 netbuf函数 75

4.4.3 文件描述符和文件缓冲区 76

4.4.4 文件描述符和文件操作函数 76

4.4.5 文件缓冲区及其操作 79

4.5 Request结构 81

4.5.1 Request.vars的含义 82

4.5.3 Request.headers含义 83

4.5.2 Request.reqpb的含义 83

4.5.4 Request.srvhdrs含义 84

4.5.5 Request其他成员 85

4.6 小结 85

第五章 Server扩充 86

5.1 设计和实现 86

5.1.1 性能 86

5.1.2 存储器的使用 87

5.1.3 全局资源 88

5.2 线程及其安全性 88

5.2.1 线程 88

5.2.2 线程安全性 89

5.3 线程安全技术 90

5.4 NSAPI提供的锁机制 91

5.5 ISAPI的锁 92

5.6 优化线程安全性的注意事项 93

5.7 勿需考虑的方面 93

5.8 开发共享对象 93

5.9 调试Server扩充 94

5.10 小结 95

6.1.3 包含文件 96

6.1.5 重要的Request结构成员 96

6.1.4 重要的Session结构成员 96

6.1.1 表示形式 96

6.1.2 含义 96

6.1 初始化函数 96

第六章 设计NSAPI扩充函数 96

6.1.6 定义pblock变量 97

6.1.7 初始化扩充的返回码 97

6.1.8 初始化函数的配置 97

6.1.9 初始化函数的例子 98

6.1.10 关键特征 101

6.2.1 表示形式 102

6.2.2 含义 102

6.2 认证函数 102

6.2.3 包含文件 103

6.2.4 重要的Session结构成员 103

6.2.5 重要的Request结构成员 103

6.2.6 定义pblock变量 104

6.2.7 认证扩充的返回码 104

6.2.8 认证事件的配置 104

6.2.9 普通认证函数 105

6.3 完整的认证函数 109

6.3.1 关键特征 116

6.4 名字转换函数 119

6.4.1 形式描述 119

6.4.2 含义 120

6.4.3 包含文件 120

6.4.4 重要的Session结构成员 120

6.4.5 重要的Request结构成员 120

6.4.6 定义的pblock变量 120

6.4.7 名字转换扩充返回码 121

6.4.8 名字转换事件的配置 121

6.4.9 简单的名字转换函数 122

6.5 路径检查函数 126

6.4.10 关键特征 126

6.5.1 形式描述 127

6.5.2 含义 127

6.5.3 包含文件 127

6.5.4 重要的Session结构成员 127

6.5.5 重要的Request结构成员 127

6.5.6 定义pblock变量 128

6.5.7 路径检查扩充的返回码 128

6.5.8 路径检查事件的配置 128

6.5.9 简单的路径检查函数 129

6.6.1 形式表示 133

6.6.2 含义 133

6.6 对象类型函数 133

6.5.10 关键特征 133

6.6.3 包含文件 134

6.6.4 重要的Session结构成员 134

6.6.5 重要的Request结构成员 134

6.6.6 定义pblock变量 135

6.6.7 对象类扩充返回码 135

6.6.8 对象类型事件配置 135

6.6.9 一个简单的对象类型函数 136

6.6.10 关键特征 137

6.7.2 含义 138

6.7 Service类函数 138

6.7.1 描述形式 138

6.7.3 包含文件 139

6.7.4 重要的Session结构成员 140

6.7.5 重要的Request结构成员 140

6.7.6 定义pblock变量 141

6.7.7 服务扩充返回码 141

6.7.8 服务事件的配置 141

6.7.9 一个非交互式服务扩充 142

6.7.10 一个数据库驱动的服务扩充 146

6.8 增加记录的函数 165

6.7.11 关键特征 165

6.8.1 表示形式 166

6.8.2 含义 166

6.8.3 包含文件 166

6.8.4 重要的Session结构成员 166

6.8.5 重要的Request结构成员 166

6.8.6 pblock变量的定义 166

6.8.7 增加记录扩充返回码 166

6.8.8 本事件的配置 167

6.8.9 AddLog函数例子 168

6.9 小结 170

6.8.10 关键特征 170

7.1 Windows NT服务 171

7.2 IIS结构 171

第七章 Microsoft IIS和ISAPI 171

7.2.1 IIS配置 173

7.2.2 IIS认证 174

7.3 ISA 175

7.3.1 ISA是如何工作的? 175

7.3.2 如何集成ISA和IIS 176

7.3.3 ISA是CGI的一种替代方法 177

7.5 ISAPI过滤器 179

7.5.1 过滤器是如何工作的? 179

7.4 ISA的配置 179

7.4.2 注册访问 179

7.4.1 注册目录 179

7.5.2 请求处理顺序 180

7.5.3 和IIS通信 181

7.6 过滤器的配置 182

7.6.1 访问权限 182

7.7 小结 182

8.1.1 GetExtensionVersion 184

第八章 ISA应用基础 184

8.1 ISA的DLL入口点 184

8.1.2 HttpExtensionProc 185

8.1.3 TerminateExtension 187

8.2 ECB是什么 188

8.2.1 Get Server Variable 188

8.2.2 Read Client 192

8.2.3 WriteClient 193

8.2.4 ServerSupportFunction 195

8.3 小结 198

9.2 决定过滤器的优先级 199

9.1 请求事件通知 199

第九章 ISAPI过滤器基础 199

9.3 ISAPI过滤器的DLL入口点 200

9.3.1 GetFilterVersion 200

9.3.2 HttpFilterProc 203

9.3.3 GetServerVariable 207

9.3.4 AddResponseHeaders 208

9.3.5 WriteClient 209

9.3.6 ServerSupportFunction 211

9.3.7 AllocMem 213

9.4.1 安全端口——SF_NOTIFY_SECURE_PORT 215

9.4 事件 215

9.4.2 非安全端口——SF_NOTIFY_NONSECURE_PORT 216

9.4.3 事件——访问拒绝 216

9.4.4 读原始数据——SF_NOTIFY_READ_RAW_DATA 219

9.4.5 预处理标题——SF_NOTIFY_PREPROC_HEADERS 221

9.4.6 认证——SF_NOTIFY_AUTHENTICATION 224

9.4.7 URL映射——SF_NOTIFY_URL_MAP 226

9.4.8 发送原始数据——SF_NOTIFY_SEND_RAW_DATA 228

9.4.9 记录——SF_NOTIFY_LOG 230

9.4.10 结束会话——SF_NOTIFY_END_OF_NET_SESSION 232

9.5 小结 233

第十章 建立和开发ISA和ISAPI过滤器 234

10.1 建立和开发一个ISA 234

10.1.1 创建一个ISA——跟我学 234

10.1.2 关键点 240

10.1.3 CGI转换的有用注意事项 241

10.1.4 查询服务器变量 242

10.1.5 URL重定向 246

10.1.6 用GET或POST处理注册表 249

10.1.7 维护一个用户认证数据库 258

10.2.1 创建一个过滤器——跟我学 267

10.2 创建并设计一个过滤器 267

10.2.2 要点 277

10.2.3 记录过滤器 278

10.2.4 认证过滤器 284

10.2.5 对象连接器过滤器 292

10.2.6 过滤器的一般错误 321

10.3 更轻松、更安全的开发注意事项 321

10.3.1 在服务器机器上开发 321

10.3.2 使用调试版内存分配器 321

10.3.5 保证ISA或过滤器线程安全 322

10.3.3 用单独堆分配内存 322

10.3.4 检查返回码 322

10.4 ISA和过滤器调试技术 323

10.4.1 禁止缓冲服务器扩充 324

10.4.2 显示DLL的输出 324

10.4.3 交互运行IIS 325

10.4.4 IIS运行时附接调试器 325

10.5 小结 326

11.1 OO基本概念 327

11.1.1 抽象 327

第十一章 面向对象概述 327

11.1.2 封装 328

11.1.3 层次 329

11.1.4 多态性 330

11.1.5 类型 331

11.1.6 类与对象间的关系 331

11.2 OOA、OOD和OOP 331

11.3 面向对象框架 332

11.3.5 纵向和横向框架 333

11.3.4 黑匣子框架 333

11.3.3 白匣子框架 333

11.3.2 什么是框架 333

11.3.1 类库 333

11.3.6 应用和系统框架 334

11.3.7 使用面向对象的优点 334

11.4 小结 335

第十二章 Web Server扩充框架 336

12.1 Server框架的用途 336

12.1.1 可移植性 336

12.1.2 通用代码基础 336

12.1.4 简化扩充创建 337

12.2 ISAPI与NSAPI基本比较 337

12.1.3 单独模型 337

12.3 SEREF 339

12.3.1 OOPL的选择 339

12.3.2 SEREF基本结构 340

12.3.3 支持类 341

12.3.4 相关性方法 355

12.3.5 SEREF事件管理器 359

12.4 可移植性 369

12.4.1 提供系统服务 370

12.5 小结 375

第十三章 SEREF事件模型 377

13.1 事件层次 377

13.1.1 SEREFEvent类 377

13.2 HTTP认证事件 381

13.2.1 普通的相关性转换方法 382

13.2.2 增加一个认证事件句柄 383

13.2.3 封装的基本行为 384

13.2.4 实现例子 386

13.3 API门和独立性 388

13.3.1 SEREFUser类 389

13.4.1 普通的相关性转换方法 392

13.4 URL映射事件 392

13.4.2 增加URL映射事件句柄 395

13.4.3 封装的基本行为 396

13.4.4 实现例子 396

13.5 URL访问检测事件 398

13.5.1 普通的相关性转换方法 399

13.5.2 添加访问检测事件 399

13.5.3 封装的基本行为 400

13.5.4 实现例子 400

13.6 服务事件 401

13.6.1 普通相关性转换方法 401

13.6.3 封装的基本行为 407

13.6.2 增加服务事件句柄 407

13.6.4 实现例子 408

13.7 小结 413

第十四章 API-框架间的连接 414

14.1 目标 414

14.2 基本API的连接性 414

14.3 回顾事件句柄注册 415

14.4 特定的API代码 416

14.4.1 Netscape NSAPI 416

14.4.2 Microsoft ISAPI 420

14.5 小结 426