第一章 HTTP
1.1 背景
1.1.1 HTTP0.9
1.1.2 HTTP 1.0
1.1.3 HTTP1.1
1.1.4 HTTPng
1.2 URI及其有关形式
1.2.1 URL
1.2.2 HTTP URL
1.2.3 绝对URL和路径
1.2.4 相对URL
1.2.5 URL编码
1.3 基本协议
1.3.1 HTTP:一个无态、应用层协议
1.3.2 TCP:作为传输协议
1.3.3 HTTP:一个媒体无关、面向对象协议
1.4 请求周期
1.5 注意
1.6 消息
1.6.1 消息标题
1.6.2 普通标题
1.7 请求
1.7.1 请求标题
1.7.2 GET请求的例子
1.8 响应
1.8.1 状态码
1.8.2 响应标题
1.8.3 实体标题
1.8.4 GET响应的例子
1.9 请求方法
1.9.1 GET
1.9.2 HEAD
1.9.3 POST
1.9.4 PUT
1.10 媒体类型
1.10.1 通用媒体类型
1.10.2 浏览器对媒体类型和解释
1.10.3 浏览器plug-ins处理媒体类型
1.11 HTTP与MIME的关系
1.11.1 访问认证
1.11.2 基本认证方法
1.11.3 BASE64编码
1.11.4 摘要认证(Digest Authentucation)
1.12 小结
第二章 WebServer技术
2.1 典型WebServer结构
2.1.1 Server操作
2.1.2 WebServer的实现
2.2 通用网关接口
2.2.1 CGI环境
2.2.2 CGIURL
2.2.3 CGI的输入
2.2.4 CGI的输出
2.3 进程(In-Process)扩充
2.4 和进程内扩充的比较
2.5 Fast
2.6 NetscapePlug-in
2.7 NicrosoftISAPI过滤器和ISA扩充
2.7.1 ISA扩充
2.7.2 ISAPI过滤器
2.8 小结
第三章 NetscapeServerAPI
3.1 NetscapeServer结构
3.1.1 UNIX
3.1.2 Windows NT
3.1.3 请求是如何处理的
3.1.4 请求处理顺序
3.2 配置文件
3.2.1 Server配置文件:nagnus.conf
3.2.2 对象配置文件:obj.conf
3.2.3 mime.types文件
3.3 小结
第四章 NSAPI扩充函数基础
4.1 NSAPI包含的文件
4.2 NSAPI的存储
4.2.1 分配临时空间
4.2.2 分配永久存储空间
4.3 Pblock结构
4.3.1 Pbloc-find
4.3.2 Pbloc-findval
4.3.3 Pbloc-pblock2str
4.3.4 Pbloc-nvinsert/pblock-nninsert
4.3.5 Pbloc-remove
4.4 Session结构
4.4.1 netbuf结构
4.4.2 netbuf函数
4.4.3 文件描述符和文件缓冲区
4.4.4 文件描述符和文件操作函数
4.4.5 文件缓冲及其操作
4.5 Request结构
4.5.1 Request.vars的含义
4.5.2 Request.reqpb的含义
4.5.3 Request.headers的含义
4.5.4 Request.srvhdrs的含义
4.5.5 Request其他成员
4.6 小结
第五章 Server 扩充
5.1 设计和实现
5.1.1 性能
5.1.2 存储器的使用
5.1.3 全局资源
5.2 线程及其安全性
5.2.1 线程
5.2.2 线程安全性
5.3 线程安全性技术
5.4 NSAPI 提供的锁机制
5.5 NSAPI的锁
5.6 优化线程安全性的注意事项
5.7 勿需考虑的方面
5.8 开发共享对象
5.9 调试Server 扩充
5.10 小结
第六章 设计NSAPI扩充函数
6.1 初始化函数
6.1.1 表示形式
6.1.2 含义
6.1.3 包含文件
6.1.4 重要的Session结构成员
6.1.5 重要Request结构成员
6.1.6 定义pblock变量
6.1.7 初始化扩充的返回码
6.1.8 初始化函数的配置
6.1.9 初始化函数的例子
6.1.10 关键特征
6.2 认证函数
6.2.1 表示形式
6.2.2 含义
6.2.3 包含文件
6.2.4 重要的Session结构成员
6.2.5 重要Request结构成员
6.2.6 定义pblock变量
6.2.7 认证扩充的返回码
6.2.8 认证事件配置
6.2.9 普通认证函数
6.3 完整的认证函数
6.3.1 关键特征
6.4 名字转换函数
6.4.1 形式描述
6.4.2 含义
6.4.3 包含文件
6.4.4 重要的Session结构成员
6.4.5 重要Request结构成员
6.4.6 定义pblock变量
6.4.7 名字转换扩充的返回码
6.4.8 名字转换事件配置
6.4.9 简单的名字转换函数
6.4.10 关键特征
6.5 路径检查函数
6.5.1 形式描述
6.5.2 含义
6.5.3 包含文件
6.5.4 重要的Session结构成员
6.5.5 重要Request结构成员
6.5.6 定义pblock变量
6.5.7 路径检查扩充的返回码
6.5.8 路径检查事件配置
6.5.9 路径检查函数
6.5.10 关键特征
6.6 对象类型函数
6.6.1 形式表示
6.6.2 含义
6.6.3 包含文件
6.6.4 重要的Session结构成员
6.6.5 重要Request结构成员
6.6.6 定义pblock变量
6.6.7 对象类型扩充返回码
6.6.8 对象类型事件配置
6.6.9 一个简单的对象类型函数
6.1.10 关键特征
6.7 Service类函数
6.7.1 描述形式
6.7.2 含义
6.7.3 包含文件
6.7.4 重要的Session结构成员
6.7.5 重要Request结构成员
6.7.6 定义pblock变量
6.7.7 服务扩充的返回码
6.7.8 服务事件配置
6.7.9 一个非交互式服务扩充
6.7.10 一个数据库区动器
6.7.11 关键特征
6.8 增加记录的函数
6.8.1 表示形式
6.8.2 含义
6.8.3 包含文件
6.8.4 重要的Session结构成员
6.8.5 重要Request结构成员
6.8.6 pblock变量的定义
6.8.7 增加记录扩充的返回码
6.8.8 本事件的配置
6.8.9 AddLog函数例子
6.8.10 关键特征
6.9 小结
第七章 Microsoft IIS和ISAPI
7.1 WindowsNT服务
7.2 IIS结构
7.2.1 IIS配置
7.2.2 IIS认证
7.3 ISA
7.3.1 ISA是如何工作的?
7.3.2 如何集成ISA和IIS
7.3.3 ISA是CGI的一种替代方法
7.4 ISA的配置
7.4.1 注册目录
7.4.2 注册访问
7.5 ISAPI过滤器
7.5.1 过滤器是如何工作的?
7.5.2 请求处理顺序
7.5.3 和IIS通信
7.6 过滤器的配置
7.6.1 访问权限
7.7 小结
第八章 ISA应用基础
8.1 ISA的DLL入口点
8.1.1 GetExtensionVersion
8.1.2 HttpExtensionProc
8.1.3 TerminateExtemsion
8.2 ECB是什么
8.2.1 GetServerVariable
8.2.2 ReadClient
8.2.3 WriteClient
8.2.4 ServerSuppirtFumction
8.3 小结
第九章 ISAPI过滤器基础
9.1 请求事件通知
9.2 决定过滤器的优先级
9.3 ISAPI过滤器的DLL入口点
9.3.1 GetServerVariable
9.3.2 HttpExtensionProc
9.3.3 GetServerVarion
9.3.4 AddResponseHeadrs
9.3.5 WriteClient
9.3.6 ServerSuppirtFumction
9.3.7 AllocMem
9.4 事件
9.4.1 安全端口----SF-NOTIFY-SECURE-PORT
9.4.2 非安全端口-----SF-NOTIFY--NONSECURE-PORT
9.4.3 事件-----访问拒绝
9.4.4 读原始数据-----SF-NOTIFY--READ-RAW-DATA
9.4.5 预处理标题------SF-NOTIFY--PREPROC-HEADERS
9.4.6 认证-----SF-NOTIFY--AUTHENTICATION
9.4.7 URL映射-----SF-NOTIFY--URL-MAP
9.4.8 发送原始数据------SF-NOTIFY--SEND-RAW-DATA
9.4.9 记录----SF-NOTIFY--LOG
9.4.10 结束会话----SF-NOTIFY-END-OF-NET-SESSION
9.5 小结
第十章 建立和开发ISA和ISAPI过滤器
10.1 建立和开发一个ISA
10.1.1 创建一个ISA-------跟我学
10.1.2 关键点
10.1.3 CGI转换的有用注意事项
10.1.4 查询服务器变量
10.1.5 URL重定向
10.1.6 用GET或POST处理注册表
10.1.7 维护一个用户认证数据库
10.2 创建并设计一个过滤器
10.2.1 创建一个过滤器---跟我学
10.2.2 要点
10.2.3 记录过滤器
10.2.4 认证过滤器
10.2.5 对象连接器过滤器
10.2.6 过滤器的一般错误
10.3 更轻松、更安全的开发注意事项
10.3.1 在服务器机器上开发
10.3.2 使用调试版内存分配器
10.3.3 用单独堆分配内存
10.3.4 检查返回码
10.3.5 保证ISA和过滤器线程安全
10.4 ISA和过滤器调试技术
10.4.1 禁止缓冲服务器扩充
10.4.2 显示DLL的输出
10.4.3 交互运行IIS
10.4.4 IIS运行时附接调试器
10.5 小结
第十一章 面向对象概述
11.1 OO基本概念
11.1.1 抽象
11.1.2 封装
11.1.3 层次
11.1.4 多态性
11.1.5 类型
11.1.6 类与对象间的关系
11.2 OOA、OOD和OOP
11.3 面向对象框架
11.3.1 类库
11.3.2 什么是框架
11.3.3 白匣子框架
11.3.4 黑匣子框架
11.3.5 纵向和横向框架
11.3.6 应用和系统框架
11.3.7 使用面向对象的优点
11.4 小结
第十二章 WebServe扩充框架
12.1 Serve框架的用途
12.1.1 可移植性
12.1.2 通用代码基础
12.1.3 单独模型
12.1.4 简化扩充创建
12.2 ISPI与NSAPI基本比较
12.3 SEREF
12.3.1 OOPL的选择
12.3.2 SEREF基本结构
12.3.3 支持类
12.3.4 相关性方法
12.3.5 SEREF事件管理器
12.4 可移植性
12.4.1 提供系统服务
12.5 小结
第十三章 SEREF事件模型
13.1 事件层次
13.1.1 SEREFFEvent类
13.2 HTTP认证事件
13.2.1 普通的相关性转换方法
13.2.2 增加一个认证事件句柄
13.2.3 封装的基本行为
13.2.4 实现例子
13.3 API门和独立性
13.3.1 SEREFUser类
13.4 URL映射事件
13.4.1 普通的相关性转换方法
13.4.2 增加UPL映射事件句柄
13.4.3 封装的基本行为
13.4.4 实现例子
13.5 URL访问检测事件
13.5.1 普通的相关性转换方法
13.5.2 添加访问检测事件
13.5.3 封装的基本行为
13.5.4 实现例子
13.6 服务事件
13.6.1 普通的相关性转换方法
13.6.2 增加服务事件句柄
13.6.3 封装的基本行为
13.6.4 实现例子
13.7 小结
第十四章 API-框架的连接
14.1 目标
14.2 基本API的连接
14.3 回顾事件句柄注册
14.4 特定的API代码
14.4.1 Netscape NSAPI
14.4.2 Microsoft ISAPI
14.5 小结