第1章 CGI程序功能 1
1.1 CGI功能 1
1.1.1 简单任务 1
第1部分 CGI程序设计的概念 1
1.1.2 中等难度的任务 2
1.1.3 高级任务 3
1.2 CGI的局限性 3
1.3 CGI程序功能 4
1.3.1 CGI的局限性 6
1.4 小结 6
第2章 CGI规范 7
2.3.1 GET方法 8
2.3.2 POST方法 8
2.3 CGI方法 8
2.2 语言 8
2.3.3 HEAD方法 9
2.4 接口规范 9
2.4.1 环境变更 9
2.4.2 命令行 11
2.4.3 标准输入 11
2.4.4 标准输出 12
2.5 例子 12
2.6 更多的信息 14
2.7 小结 15
3.2 为什么需要对话 16
3.1 CGI的由来 16
第3章 CGI速成 16
32.1 建立连接 17
3.2.2 开始工作 17
3.3 环境变量的作用 17
3.3.1 与服务器相关的环境变量 18
3.3.2 与客户机相关的环境变量 18
3.3.3 与请求相关的环境变量 19
3.4 系统总览 20
3.4.1 REQUEST_METHOD 21
3.4.2 GET 21
3.4.3 POST 21
3.4.5 古怪的数据 21
3.4.7 URL编码 22
3.4.6 名=值(Name=Value)对 22
3.5 RSVP 23
3.5.1 应答的类型 23
3.5.2 头信息 23
3.6 一些注意事项 25
3.7 小结 25
第4章 几种CGI编程库的比较 26
4.1 用于C程序设计的CGI库 26
4.1.1 CGIe1.05 26
4.1.2 CGI-HTML1.21 28
4.2 C++CGI类库 30
4.2.1 AHTML 30
4.3 Perly库 31
4.3.1 CGI-Lib 31
4.2.2 Kelly Black的CGI C++类库 31
4.4 小结 32
第2部分 CGI程序设计 33
第5章 设计CGI应用程序 33
5.1 提出问题 33
5.1.1 应用程序的功能 34
5.1.2 初步框架 34
5.2 设计阶段 35
5.2.1 伪代码 35
5.2.2 准备处理 36
5.2.3 收集输入 36
5.2.4 处理 37
5.3.1 库 38
5.3 编写代码 38
5.3.2 语言 39
5.3.3 权衡考虑 39
5.3.4 为将来打算 39
5.4 程序移植 40
5.4.1 服务器软件 40
5.4.2 操作系统 40
5.4.3 重用 41
5.5 小结 41
第6章 测试和调试 42
6.1 过程和方法学 42
6.1.1 察看 43
6.1.2 命令行测试 43
6.2 隔立问题 45
6.2.2 一般用户不能轻易存取它 46
6.2.1 不破坏原来的数据 46
6.3 开始测试 47
6.3.1 测试过程 47
6.4 调试应用程序 50
6.4.1 常见错误 50
6.4.2 利用出错日志 51
6.4.3 调试标志 51
6.4.4 重新测试应用程序 52
6.5 小结 52
第7章 服务器端附件(SSI)与网关 53
7.1 SSI的概念及功能 53
7.2 SSI与CGI的比较 54
7.3.1 CERN 55
7.3 支持SSI的服务器 55
7.3.2 Apache 56
7.4 常用SSI命令功能列表 56
7.5 一些SSI例子 58
7.5.1 计数器 58
7.5.2 随机图像生成器 60
7.6 Web协议:HTTP 62
7.8 改进现有的网关 62
7.9 一些网关的例子 63
7.9.1 finger 63
7.9.2 邮寄表单 65
7.10 使用Web作为一个标准的Internet访问接口 68
7.11 小结 69
8.1.2 表单的局限性 70
8.1.1 表单的功能 70
8.2 生成HTML表单 70
第8章 表单及其处理 70
8.1 什么是HTML表单 70
8.2.1 一个HTML表单例子 71
8.2.2 HTML表单标记 71
8.2.3 〃HTML3.0规范草案〃中建议的表单标记 78
8.2.4 表单风格 79
8.2.5 一个表单示范 79
8.3 处理表单 80
8.3.1 REQUEST_TYPES:GET和POST 80
8.3.2 表单数据编码 82
8.3.3 选择编程语言 83
8.3.4 一个CGI表单处理程序示范 84
8.3.5 基于表单的Intranet/Internet客户机/服务器应用程序 85
8.4.2 表单编码概要 86
8.5 小结 86
8.4 表单参考 86
8.4.1 GET与POST机制概要 86
第9章 安全性 87
9.1 CGI不安全吗 87
9.1.1 请谨慎使用CGI——一个强大的工具 87
9.1.2 有关CGI的安全问题——一个例子 87
9.1.3 一般的Internet安全问题 88
9.1.4 除CGI外的其他选择 88
9.2 能安全使用CGI吗 89
9.2.1 程序员和管理者对安全性都负有责任 89
9.2.2 CGI程序员如何改进安全性 90
9.3 小结 96
10.1.1 前端CGI 97
第10章 数据库 97
10.1 数据库接口 97
10.2 Web索引 107
10.2.1 索引器 107
10.2.2 Wais 107
10.2.3 Swish 108
10.2.4 Ice 108
10.2.5 Glimpse 108
10.2.6 检索引擎 109
10.2.7 Wais前端程序 109
10.2.8 其他前端程序 109
10.2.9 建立自己的前端程序 109
10.3 大型数据库 110
10.4 小结 117
11.2 最重要的搜索引擎 119
第11章 CGI及搜索 119
11.1 在Web上搜索信息 119
11.3 在Internet上收集信息 120
11.4 最终用户的检索界面 120
11.5 后端CGI工作 123
11.6 为White Page数据库开发一个简单的CGI程序 124
11.7 未来的改进之处 130
11.8 小结 131
第12章 图像映像 132
12.1 图像映像——神话、隐喻和含义 132
12.2 图像剖析——像素和坐标 133
12.3 HTML、ISMAP、QUERY_STRING——传送图像映像信息给CGI程序 134
12.4 重访Flatlanol——介绍标准图像映像系统 135
12.4.1 Imagemap.c——标准图像映像处理器 136
12.4.2 .map文件——以图像映像方式描述形式 137
12.5 客户端图像映像和神奇的MIME类型 139
12.5.1 客户端的图像映像 140
12.5.2 当很多浏览器不支持客户端图像映像时,如何能依赖它呢 141
12.5.3 .map神奇的MIME类型 142
12.6 走向服务器端——开发图像映像代码 143
12.7 创造性的图像映像编程——用Glorglox来打破惯例 150
12.8 图像按钮——图像映像已接近尾声 152
12.8.1 HTML端的图像按钮 152
18.2.2 用图像按钮替换图像映像 155
12.9 小结 156
第13章 服务器专有功能扩充 158
13.1 Server Push 158
13.2 HTTP Cookies 161
13.3 其他服务器功能扩充 170
13.3.1 Web Server/400 170
13.3.2 Apache Modules 170
13.3.3 XSSI 170
13.3.4 Jigsaw 资源 172
13.3.5 Netscape 和Microsoft 172
13.4 小结 172
第3部分 CGI编程的特殊应用 173
第14章 WinCGI基础 173
14.1 初级的WinCGI程序 173
14.2 授权问题 175
14.3 小结 195
15.1 数据库和数据格式 196
15.1.1 普通文件数据库 196
第15章 WinCGI:数据库后端处理 196
15.1.2 关系数据库 197
15.2 与数据库交换信息 197
15.2.1 普通文件的读操作 197
15.2.2 ODBC 198
15.2.3 SQL 198
15.2.4 DDE 198
15.3 数据库工具 199
15.3.1 Visual Basic 199
15.3.2 Delpin 199
15.3.3 C/C++ 199
15.3.4 其他工具 200
15.4 建立数据库 200
15.4.1 数据 200
15.4.2 工具 201
15.4.3 信息交换 202
15.4.3 代码 202
15.4.4 使用数据库 205
15.5 小结 206
第16章 DOS CGI基础 207
16.1 基础知识 207
16.1.1 CONTENT_FILE 208
16.1.2 OUTPUT_FILE 209
16.1.3 其他环境变量 209
16.2 语言 209
16.2.1 BAT和CMD文件 209
16.2.2 BASIC和它的同族语言(Cousins) 213
16.2.3 Perl for DOS 214
16.3 局限性 216
16.2.4 C/C++ 216
16.4 资源 217
164.1 转换其他CGI程序和信息 217
16.4.2 Web服务器软件 217
16.4.3 有关DOS程序设计的书籍 218
16.5 小结 218
第4部分 CGI编程实例 219
第17章 投票站 219
17.1 投票站——收集和管理意见 219
17.2 简单的开始——一个低层次的投票站 219
17.3 良好的代码,较差的投票站——greenegg.cgi的技术价值 226
17.3.1 使用关联数组处理GEI/POST方式数据 226
17.3.4 使用文件输出过滤器为/Usr/sbin/sendmail和Sendmail-t Flag提供 Stdin 227
17.3.3 利用@array=<*FILEHANDLE>处理数据 227
17.3.2 使用if表达方式修改结构以便及时捕捉错误 227
17.3.5 输出格式化信息时使用Print FH< 17.4 投票站所期望的功能列表 229 17.5 多状态(Multistate)CGI程序——不仅仅是URL 244 17.6 生成有意义的报告 245 17.6.1 Perl中的排序 245 17.6.2 平均和标准方差统计 246 17.6.3 可视化输出——生成图形 246 17.6.4 内部与外部数据处理 247 17.7 小结 249 第18章 电子论坛 250 18.1 电子论坛——所有旧的信息都具有了新的意义 250 18.2 电子论坛的显示和双重状态的CGI编程 250 18.3 电子论坛有用的数据字段和双亲/兄弟/儿子关系 251 18.4 电子论坛举例 252 18.5 管理电子论坛 261 18.5.1 通过日期清除张贴 261 18.5.2 按照日期清除链接 262 18.5.3 按照作者清除张贴 262 18.5.4 清除单独的张贴 262 18.5.5 清除单独的链接 262 18.6 电子论坛补充 273 18.6.1 有选择的排序标准 273 18.6.2 搜索引擎 273 18.6.3 注册用户和.htaccess方案 274 18.7 小结 274 19.2. 聊天室规范 275 第19章 聊天室 275 19.1 聊天室——开始Internet生活 275 19.3 在你的系统上运行chat.cgi 281 19.4 聊天室系统和初始页 282 19.5 对基本聊天室的扩充 283 19.6 智能的用户身份标识 283 19.7 ChatMaster——聊天室管理员 284 19.8 私人消息 284 19.8.1 聊天室的其他特征和例子 293 19.9 CGI聊天室的替代物 294 19.9.1 IRC-Internet Releay Chat 294 19.9.2 PowWow 294 19.9.5 MUD,MUSH和MOO系统 295 19.10 小结 295 19.9.4 talk和ytalk一早期UNIX备用 295 19.9.3 Java聊天室 295 第20章 CGI和多用户游戏 296 20.1 多用户游戏 297 20.1.1 规划 299 20.1.2 建立框架 299 20.1.3 编码 300 20.2 小结 308 第21章 跟踪用户 309 21.1 为何要跟踪用户 309 21.2 Web市场的本质 310 21.3 分析访问日志 310 21.3.1 何谓访问日志 310 21.4 环境变量 321 21.5 创建伪访问日文件 324 21.6 访问日志 326 21.7 跟踪CGI 332 21.7.1 index.cgi 333 21.7.2 index.shtml 333 21.7.3 在图像中包括CGI 333 21.8 一个简单的Web计数器 334 21.9 调用counter.cgi 337 21.10 找出用户的地理位置 337 21.10.1 可行性讨论 337 21.10.2 NSLOOKUP和WHOIS简介 344 21.10.3 通过IP地址跟踪用户的局限性 345 21.11 Cookies 345 21.12.1 用finger命令查看拨号上网服务器 348 21.12 跟踪用户的其他方法 348 21.13 跟踪用户的道德行为 349 21.14 在网上获得本章的内容 349 21.15 小结 350 第22章 简单化的订货表单 351 22.1 表单和数据 351 22.1.1 表单标记 353 22.1.2 方法(Methods) 354 22.1.3 环境变量 354 22.1.4 未加工的数据 354 22.2 用Perl处理数据 355 22.2.1 分析一个简单的CGI程序 355 22.2.2 简单的CGI程序输出 357 22.2.4 通过METHOD=GET接收表单 358 22.2.3 分析数据 358 22.3 查错 360 22.3.1 在表单中嵌入信息 361 22.3.2 数据的用途 362 22.3.3 保留的内容 363 22.4 安全问题 366 22.4.1 交易安全性 366 22.4.2 CGI安全性 366 22.5 小结 367 第23章 购物车 368 23.1 什么是购物车CGI 368 23.2 内容概述 368 23.3 购物车CGI的基本要素 369 23.3.1 产品目录 369 23.4.1 htaccess和REMOTE_USER 371 23.4 保持跟踪状态的其他方法 371 23.4.3 HTTP Cookies 372 23.4.4 用设置Cookies 372 23.4.2 嵌入对话ID 372 23.4.5 建立顾客开工文件 373 23.5 数据库管理 373 23.5.1 使用DBM 373 23.6 你的劳动成果:cart.cgi 374 23.7 小结 383 第5部分 取代CGI的其他方法 384 第24章 Java和JavaSeript:取代CGI的另一种选择 384 24.1 Java:给Web带来更多的动态特性 384 24.2 何谓JavaScript 385 24.4 CGI和Java/JavaScript的比较 386 24.3 Java和JavaScript区别 386 24.5 Java和CGI之间的通信 387 24.6 Java调用CGI 387 24.7 CGI调用Java 387 24.8 Java 和JavaScript 388 24.9 JavaScript 388 24.10 CGI,Java/JavaScript各有所长 388 24.11 有待改进的地方 390 24.12 何处可以得到较多的信息 390 24.13 小结 391 第25章 ISAPI 392 25.1 何谓ISAPI 392 25.2.1 Internet服务器的应用程序(ISA) 393 25.2 ISAPI的背景和功能 393 25.2.2 ISAPI过滤器 401 25.2.3 实现的复杂性 404 25.3 小结 407 第26章 NSAPI 408 26.1 为什么要NSAPI 408 26.2 NSAPI与CGI 410 26.2.1 性能 410 26.2.2 进程空间 410 26.2.3 数据和函数访问 410 26.3 NSAPI和服务器的进程 410 26.3.2 服务器应用程序函数 411 26.3.3 控制函数的使用 411 26.3.1 HTTP请求/响应过程 411 26.4 函数及功能 414 26.4.1 服务器应用程序函数原型 414 26.4.2 参数块 414 26.4.3 会话 415 26.4.4 请求结构 416 26.4.5 函数、变量及其响应 417 26.5 实现考虑 419 265.1 跨平台功能 419 26.5.2 信息资源 420 26.5.3 编程知识 420 26.5.4 调试 420 26.6 NSAPI的未来 420 26.7 小结 421 27.1.1 OLE和COM 422 27.1 ActiveX概念和背景 422 第27章 ActiveX控件 422 27.1.3 ActiveX,OLE的后继者 423 27.1.4 构件分类 423 27.2 重要之处 424 27.2.1 功能 424 27.3 可用的ActiveX控件 425 27.3.1 ActiveMovie 425 27.3.2 HTML布局控件 425 27.3.3 其他控件 426 27.4 开发ActiveX控件 426 27.4.1 基本的编程基础 426 27.4.2 控件框架 426 27.4.3 创建工具 426 27.5.1 27.5 给Web站点添加控件 427 27.1.8 构件打包 430 27.6 ActiveX适用性和发展方向 433 27.6.1 谁来开发 433 27.6.2 开放标准 433 27.6.3 跨平台 434 27.6.4 竞争标准 434 27.6.5 Nctscape和ActiveX 434 27.6.6 市场 435 27.7 资源 435 27.7.1 ActiveX SDK 435 27.7.2 OLE和OCX控件资料 435 27.7.3 Web站点 435 27.8 小结 436 27.7.3 个人 436 27.7.4 当前开发者(Visual Basic和C++) 436 第28章 ActiveX脚本语言 437 28.1 HTML和编程的混合 437 28.1.1 Script标记 438 28.1.2 界面构件 438 28.2 ActiveX脚本模型 439 28.2.1 Internet Explorer3.0浏览器对象模型 439 28.2.2 ActiveX控件和构件 440 28.2.3 VBScript对象 440 28.3 语 言 440 28.3.2 VBScript 441 28.3.3 VBScript功能 441 28.3.1 JavaScrtp 441 28.3.4 VBScript不具备的功能 443 28.4 脚本化主机和引擎 443 28.4.1 主机 443 28.4.2 Internet Explorer 443 28.4.3 未来的主机 444 28.4.4 引擎 444 28.5 资源 444 28.5.1 从VB到VBSeript 444 28.5.2 VBScript语言和运行参考 445 28.5.3 Web站点 447 28.6 小结 447 第6部分 附 录 448 附录A Web资源 448