第1章通过发出表格请求来读取数据 1
1.1阅读环境变量 1
1.1.1问题 1
目 录 1
1.1.2技术要点 2
1.1.3步骤 2
1.1.4工作方式 2
1.1.5注释 2
1.2确定所发出的表格请求的类型 4
1.2.1 问题 4
1.2.2技术要点 4
1.2.3步骤 4
1.2.4 工作方式 4
1.3.1问题 5
1.3.2技术要点 5
1.2.5注释 5
1.3从GET请求中读取数据 5
1.3.3步骤 6
1.3.4工作方式 9
1.3.5注释 10
1.4从POST表格请求中读取数据 12
1.4.1问题 12
1.4.2技术要点 12
1.4.3步骤 12
1.4.4工作方式 16
1.4.5注释 17
1.5.3步骤 20
1.5.2技术要点 20
1.5.1 问题 20
1.5解释来自表格请求的数据 20
1.5.4工作方式 25
1.5.5注释 25
1.6对表格请求中的数据进行解码 35
1.6.1 问题 35
1.6.2技术要点 35
1.6.3步骤 35
1.6.4工作方式 39
1.6.5注释 40
1.7.2技术要点 43
1.7.3步骤 43
1.7.1问题 43
1.7保存表格请求中的数据 43
1.7.4工作方式 47
1.7.5注释 47
1.8读取命令行中传送给程序的数据 51
1.8.1问题 51
1.8.2技术要点 51
1.8.3步骤 51
1.8.4工作方式 54
1.8.5注释 54
1.9在同一个程序中同时支持GET请求和POST请求 55
1.9.1问题 55
1.9.2技术要点 55
1.9.3步骤 55
1.9.4工作方式 59
1.9.5注释 60
1.10解释表格数据中的一键多值现象 64
1.10.1问题 64
1.10.2技术要点 64
1.10.3步骤 64
1.10.4工作方式 71
1.10.5注释 71
第2章使用传送到CGI程序中的数据 80
2.1确定服务器软件的类型 80
2.1.1 问题 80
2.1.2 技术要点 80
2.1.3 步骤 80
2.1.4 工作方式 81
2.1.5 注释 83
2.2确定自我引用的URL的服务器名字 87
2.2.1问题 87
2.2.2技术要点 88
2.2.3步骤 88
2.2.4工作方式 90
2.2.5注释 91
2.3确定服务器所使用的协议 92
2.3.1问题 92
2.3.2技术要点 92
2.3.3步骤 92
2.3.4工作方式 93
2.3.5注释 94
2.4.3步骤 97
2.4.2技术要点 97
2.4.1问题 97
2.4确定所使用的CGI的版本 97
2.4.4工作方式 99
2.4.5注释 99
2.5确定程序的路径 101
2.5.1 问题 101
2.5.2技术要点 101
2.5.3步骤 101
2.5.4工作方式 103
2.5.5注释 104
2.6确定客户机的IP地址 106
2.6.1问题 106
2.6.2技术要点 106
2.6.3步骤 106
2.6.4工作方式 107
2.6.5注释 108
2.7确定客户机的名字 109
2.7.1问题 109
2.7.2技术要点 109
2.7.3步骤 109
2.7.4工作方式 110
2.7.5注释 111
2.8确定客户所使用的浏览器 113
2.8.1问题 113
2.8.2技术要点 113
2.8.3步骤 113
2.8.4工作方式 115
2.8.5注释 116
2.9.3步骤 118
2.9.2技术要点 118
2.9确定客户所能理解的数据类型 118
2.9.1问题 118
2.9.4工作方式 121
2.9.5注释 122
第3章通过图像映射请求读取数据 125
3.1操纵来自静态图像的输入 125
3.1.1 问题 125
3.1.2技术要点 125
3.1.3步骤 125
3.1.4工作方式 136
3.1.5注释 138
3.2操纵来自动态图像映射的输入 140
3.2.1问题 140
3.2.2技术要点 140
3.2.3步骤 141
3.2.4工作方式 145
3.2.5注释 146
第4章对请求的标准应答 152
4.1选择输出类型 152
4.1.1问题 152
4.1.2技术要点 153
4.1.3步骤 153
4.1.4工作方式 154
4.1.5注释 154
4.2对输出进行初始化 154
4.2.1问题 154
4.2.2技术要点 155
4.2.3步骤 155
4.2.5注释 158
4.2.4工作方式 158
4.3.1问题 160
4.3.2技术要点 160
4.3.3步骤 160
4.3如何输出对本地文档的引用 160
4.3.4工作方式 162
4.3.5注释 162
4.4输出完整的URL 163
4.4.1问题 163
4.4.2技术要点 163
4.4.3步骤 163
4.4.4工作方式 166
4.4.5注释 166
4.5.2技术要点 168
4.5.3步骤 168
4.5输出一个本地文档 168
4.5.1问题 168
4.5.4工作方式 171
4.5.5注释 171
4.6输出动态的HTML页面 174
4.6.1问题 174
4.6.2技术要点 174
4.6.3步骤 174
4.6.4工作方式 178
4.6.5注释 178
5.1.2技术要点 183
5.1.1问题 183
5.1将HTML转换成标记符和主体文本 183
第5章在动态输出过程中操纵现有的HTML文件 183
5.1.3步骤 184
5.1.4工作方式 195
5.1. 5注释 196
5.2为表格设置行为或请求方法 207
5.2.1问题 207
5.2.2技术要点 207
5.2.3步骤 207
5.2.4工作方式 211
5.2.5注释 211
5.3.3步骤 213
5.3.2技术要点 213
5.3.1问题 213
5.3找到输入项目并确定其类型 213
5.3.4工作方式 217
5.3.5注释 217
5.4修改文本/隐含文件/口令输入项目的设置值或大小 221
5.4.1问题 221
5.4.2技术要点 221
5.4.3步骤 221
5.4.4工作方式 225
5.4.5注释 225
5.5管理复选框的状态 229
5.5.1问题 229
5.5.2技术要点 229
5.5.3步骤 229
5.5.4工作方式 233
5.5.5注释 234
5.6管理一系列圆按钮的状态 236
5.6.1问题 236
5.6.2技术要点 237
5.6.3步骤 237
5.6.4工作方式 241
5.6.5注释 241
5.7使Submit按钮有固定的名称 244
5.7.1问题 244
5.7.2技术要点 244
5.7.3步骤 244
5.7.4工作方式 248
5.7.5注释 248
5.8.2技术要点 250
5.8.3步骤 250
5.8改变文本区域的设置值和大小 250
5.8.1 问题 250
5.8.4工作方式 254
5.8.5注释 254
5.9管理选择列表中的选项 256
5.9.1问题 256
5.9.2技术要点 256
5.9.3步骤 257
5.9.4工作方式 262
5.9.5注释 262
6.1.3步骤 268
6.1.2技术要点 268
6.1.1问题 268
6.1支持自定义的HTML命令 268
第6章对请求的高级应答 268
6.1.4工作方式 271
6.1.5注释 272
6.2将使用当前格式的数据插入到现有的HTML文件中 274
6.2.1问题 274
6.2.2技术要点 274
6.2.3步骤 274
6.2.4工作方式 277
6.2.5注释 277
6.3将HTML链接插入到现有的HTML文件中 278
6.3.1问题 278
6.3.2技术要点 278
6.3.2步骤 279
6.3.4工作方式 281
6.3.5注释 282
6.4.将选择列表插入到现有的HTML文件中 283
6.4.1问题 283
6.4.2技术要点 283
6.4.3步骤 283
6.4.4工作方式 286
6.4.5注释 286
6.5将Submit按钮的列表插入到现有的HTML文件中 287
6.5.1 问题 287
6.5.2技术要点 287
6.5.3步骤 288
6.5.5注释 290
6.5.4 工作方式 290
6.6.1 问题 292
6.6.2技术要点 292
6.6.3步骤 292
6.6直接将HTTP传送给客户机 292
6.6.4工作方式 296
6.6.5注释 298
6.7使用同一输入执行另一个CGI程序 298
6.7.1问题 298
6.7.2技术要点 298
6.7.3步骤 299
6.7.4工作方式 301
6.8.2技术要点 302
6.8.3步骤 302
6.8使用新的输入执行另一个CGI文件 302
6.8.1问题 302
6.7.5注释 302
6.8.4 工作方式 307
6.8.5注释 307
第7章访问其他服务器 316
7.1通过CGI程序发送电子函件 316
7.1.1问题 316
7.1.2技术要点 316
7.1.3步骤 316
7.1.4 工作方式 321
7.1.5 注释 322
7.2.1 问题 327
7.2.2技术要点 327
7.2动态创建图像 327
7.2.3步骤 328
7.2.4 工作方式 333
7.2.5注释 334
7.3存取dbm文件 340
7.3.1问题 340
7.3.2技术要点 340
7.3.3步骤 340
7.3.4 工作方式 344
7.3.5注释 346
8.1.1问题 354
8.1.2技术要点 354
8.1将隐含变量与格式数据一起传送 354
第8章将多个脚本文件连接到一个应用程序中 354
8.1.3步骤 355
8.1.4工作方式 358
8.1.5注释 359
8.2用一个程序为多种表格服务 359
8.2.1问题 359
8.2.2技术要点 359
8.2.3步骤 360
8.2.4工作方式 365
8.2.5注释 367
8.3创建多分支查询系统 368
8.3.1问题 368
8.3.2技术要点 368
8.3.3步骤 368
8.3.4工作方式 371
8.4使用URL传送数据 373
8.4.1问题 373
8.4.2技术要点 373
8.3.5注释 373
8.4.3步骤 374
8.4.4工作方式 376
8.4.5注释 376
8.5创建一个可以在HTML页面搜索关键词的搜索引擎 377
8.5.1问题 377
8.5.1技术要点 377
8.5.3步骤 377
8.5.4工作方式 382
8.5.5注释 382
8.6.2技术要点 383
8.6在程序之间传递变量 383
8.6.1问题 383
8.6.3工作方式 388
8.6.4注释 388
8.7创建一个基于Web的公告系统 388
8.7.1问题 388
8.7.2技术要点 388
8.7.3步骤 389
8.7.4工作方式 406
8.7.5注释 406
8.8创建一个完善的商业系统 407
8.8.1问题 407
8.8.2技术要点 407
8.8.3步骤 409
8.8.4工作方式 425
8.8.5注释 426
第9章测试程序 427
9.1建立程序测试方案 427
9.1.1问题 427
9.1.2方法 427
9.1.3步骤 427
9.1.4工作方式 433
9.2在使用浏览器和服务器的情况下测试CGI程序 435
9.2.1问题 435
9.2.2方法 435
9.2.3步骤 436
9.3.1问题 438
9.3.2步骤 438
9.2.4工作方式 438
9.3在只使用Web服务器,而不使用浏览器的情况下测试程序 438
9.2.5注释 438
9.3.3工作方式 439
9.3.4注释 439
9.4用Web服务器和浏览器测试程序 439
9.4.1问题 439
9.4.2技术要点 439
9.4.3步骤 439
9.5.3步骤 440
9.5.1问题 440
9.5.2方法 440
9.4.5注释 440
9.4.4工作方式 440
9.5测试过程自动化 440
9.5.4工作方式 442
9.5.5注释 442
9.6避免常见的编程错误 442
9.6.1问题 442
9.6.2方法 442
9.6.3步骤 442
9.6.4工作方式 444
9.6.5注释 444
10.1.1问题 445
10.1.3步骤 445
10.1.2方法 445
10.1在UNIX上安装CGI程序 445
第10章安装程序 445
10.1.4 工作方式 449
10.1.5注释 450
10.2在Windows NT上安装程序 450
10.2.1 问题 450
10.2.2技术要点 450
10.2.3步骤 450
10.2.4工作方式 451
10.2.5注释 452
10.3在Windows 3.1上安装程序 452
10.3.1问题 452
10.3.2技术要点 452
10.4.2技术要点 453
10.4在Macintosh 中安装程序 453
10.4.1问题 453
10.3.4注释 453
10.3.3步骤 453
10.4.3步骤 454
10.4.4工作方式 454
10.4.5注释 454
第11章CGI安全问题 455
11.1如何避免常见的CGI安全问题 455
11.1.1问题 455
11.1.2方法 455
11.1.3步骤 456
11.1.4工作方式 458
11.2.3步骤 459
11.2.2方法 459
11.2.1问题 459
11.2使用NCSA服务器请求用户身份验证 459
11.1.5注释 459
11.2.4工作方式 460
11.2.5注释 461
11.3使用CERN服务器请求用户身份验证 461
11.3.1 问题 461
11.3.2方法 461
11.3.3步骤 461
11.3.4工作方式 462
11.3.5注释 463
11.4使用Netscape服务器请求用户身份验证 463
11.4.1问题 463
11.4.2方法 463
11.4.5注释 464
11.4.4工作方式 464
11.4.3步骤 464
第12章充分利用客户机和服务器 465
12.1使用服务器端的包含文件 465
12.1.1问题 465
12.1.2技术要点 465
12.1.3步骤 465
12.1.4工作方式 468
12.1.5注释 469
12.2迫使客户机不断更新 469
12.2.1问题 469
12.2.2技术要点 469
12.2.3步骤 470
12.3.1问题 471
12.3.2技术要点 471
12.2.5注释 471
12.3运用现有条件提供永久的数据 471
12.2.4工作方式 471
12.3.3步骤 472
12.3.4工作方式 472
12.3.5注释 473
12.4给Netscape服务器添加特性 473
12.4.1问题 473
12.4.2技术要点 473
12.4.3步骤 473
12.4.4工作方式 474
12.4.5注释 475
附录A CGI支持的环境变量 476
附录B HTML表格元素 477