图书介绍
Apache模块开发指南【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

- (英)丘著 著
- 出版社: 北京:电子工业出版社
- ISBN:7121059681
- 出版时间:2008
- 标注页数:558页
- 文件大小:98MB
- 文件页数:479页
- 主题词:互联网络-网络服务器
PDF下载
下载说明
Apache模块开发指南PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 使用Apache进行应用程序开发1
1.1 Apache Web服务器简史1
1.1.1 Apache 11
1.1.2 Apache 22
1.2 Apache软件基金会3
1.2.1 功绩组织模式(Meritocracy)4
1.2.2 角色4
1.2.3 哲学理念6
1.3 Apache开发流程6
1.3.1 Apache代码仓库7
1.3.2 开发者论坛9
1.3.3 开发人员10
1.3.4 参与Apache工作11
1.4 Apache和知识产权12
1.4.1 Apache许可证12
1.4.2 第三方知识产权15
1.5 进一步阅读资料16
1.5.1 交互式在线论坛16
1.5.2 会议17
1.5.3 网站17
1.6 小结19
第2章 Apache平台和架构21
2.1 纵览21
2.2 Apache运行的两个阶段22
2.2.1 启动阶段23
2.2.2 运行阶段25
2.2.3 停止阶段26
2.3 多处理模块MPM26
2.3.1 为什么需要MPM26
2.3.2 UNIX类的MPM模块27
2.3.3 MPM模块和操作系统28
2.4 基本概念和数据结构29
2.4.1 request_rec30
2.4.2 server_rec35
2.4.3 conn_rec37
2.4.4 process_rec39
2.5 其他的关键API组件39
2.6 Apache配置基础41
2.7 Apache的请求处理42
2.7.1 内容生成42
2.7.2 请求处理阶段43
2.7.3 处理钩子44
2.7.4 数据轴和过滤器46
2.7.5 处理的顺序49
2.7.6 处理钩子50
2.8 小结51
第3章 Apache可移植运行时库53
3.1 APR54
3.2 APR实用库56
3.3 基本的约定57
3.3.1 参考手册:API文档和Doxygen57
3.3.2 命名空间57
3.3.3 声明的宏58
3.3.4 apr_status_t和返回值58
3.3.5 条件编译59
3.4 资源管理:APR池59
3.4.1 资源管理的问题60
3.4.2 APR池61
3.4.3 资源的生命周期65
3.4.4 池的局限性68
3.5 精选的APR主题68
3.5.1 字符串和格式69
3.5.2 国际化69
3.5.3 时间和日期70
3.5.4 数据结构70
3.5.5 Bucket和Brigade74
3.5.6 文件系统76
3.5.7 网络76
3.5.8 编码和密码76
3.5.9 URI处理77
3.5.10 进程和线程78
3.5.11 资源池78
3.5.12 API扩展79
3.6 APR/Apache中的数据库79
3.6.1 DMB和apr_dbm模块80
3.6.2 SQL数据库和apr_dbd82
3.7 小结83
第4章 编程技巧和忠告85
4.1 Apache编程约定85
4.1.1 代码行86
4.1.2 函数86
4.1.3 代码块86
4.1.4 流控制87
4.1.5 声明87
4.1.6 注释87
4.2 管理模块数据88
4.2.1 配置向量88
4.2.2 生命周期域88
4.3 模块之间的通讯90
4.4 线程安全的编程问题92
4.5 管理持久数据93
4.5.1 线程安全93
4.5.2 内存/资源管理96
4.6 跨平台编程的问题99
4.6.1 示例:创建一个临时文件100
4.7 跨MPM编程问题101
4.7.1 进程和全局锁102
4.7.2 内存共享104
4.8 安全编程问题106
4.8.1 预防性原则:不要相信任何事情107
4.8.2 拒绝服务攻击:限制破坏109
4.8.3 采用操作系统来帮助你111
4.9 外部的依赖和库114
4.9.1 第三方的库114
4.9.2 库的最佳实践114
4.9.3 使用库构建模块118
4.10 使用其他语言编写和编译模块120
4.11 小结122
第5章 开发内容生成器123
5.1 HelloWorld模块124
5.1.1 模块构架124
5.1.2 返回值126
5.1.3 处理器的字段127
5.1.4 完整的模块127
5.1.5 使用request_rec对象129
5.2 请求、响应和环境130
5.2.1 I/O模块132
5.2.2 读取表单数据138
5.3 默认的处理器144
5.4 小结148
第6章 请求处理周期和元数据处理器151
6.1 HTTP超文本传输协议152
6.1.1 HTTP协议152
6.1.2 解构HTTP请求153
6.2 Apache的请求处理过程155
6.2.1 映射至文件系统156
6.2.2 内容协商158
6.2.3 安全性160
6.2.4 操作缓存160
6.2.5 私有元数据160
6.2.6 记录日志161
6.3 转移请求:内部重定向161
6.3.1 错误文档162
6.3.2 处理格式错误的请求和恶意请求163
6.4 采集信息:子请求163
6.4.1 示例165
6.5 开发模块168
6.5.1 选择文档中不同的变量168
6.5.2 错误处理和复用性172
6.6 小结174
第7章 AAA:访问、认证和授权177
7.1 安全177
7.1.1 认证:安全的层次178
7.1.2 登录Web180
7.2 AAA的概览180
7.3 Apache1.x和2.0中的AAA182
7.4 Apache2.1/2.2中的AAA182
7.4.1 基于主机的访问控制183
7.4.2 认证:check_user_id183
7.4.3 密码查询(password lookup)184
7.4.4 授权184
7.5 AAA逻辑185
7.5.1 认证和Require指令186
7.5.2 拒绝访问186
7.5.3 认证方法187
7.6 编写AAA模块187
7.6.1 一个基本认证提供者188
7.6.2 一个授权函数190
7.6.3 配置193
7.6.4 基本认证提供者和摘要认证提供者193
7.7 实现一个定制的登录机制195
7.7.1 使用SQL进行会话管理196
7.7.2 在没有浏览器认证对话框时进行认证197
7.8 小结199
第8章 过滤模块201
8.1 输入过滤器和输出过滤器202
8.2 内容过滤器、协议过滤器和连接过滤器202
8.3 剖析过滤器205
8.3.1 回调函数205
8.3.2 流水线205
8.4 过滤器API和对象207
8.4.1 输出过滤器207
8.4.2 输入过滤器207
8.5 过滤器对象208
8.6 过滤器输入/输出210
8.7 巧妙的Apache 2.2过滤机制211
8.7.1 预处理和后处理212
8.7.2 mod_filter213
8.7.3 过滤器的自配置213
8.7.4 协议处理215
8.8 示例:通过直接操作Bucket来过滤文本217
8.8.1 Bucket函数217
8.8.2 过滤器218
8.9 复杂解析221
8.10 使用现有的解析器进行过滤225
8.11 类似stdio的过滤器输入/输出227
8.12 输入过滤器和Pull API230
8.12.1 模式231
8.12.2 阻塞(Block)231
8.12.3 readbytes231
8.12.4 输入过滤器示例232
8.13 小结235
第9章 模块配置237
9.1 配置基础237
9.2 配置数据结构239
9.3 管理模块配置239
9.3.1 模块配置239
9.3.2 服务器配置和目录配置240
9.4 实现配置指令242
9.4.1 配置函数242
9.4.2 示例244
9.4.3 配置函数中的用户数据244
9.4.4 封装配置函数245
9.4.5 配置的作用域246
9.4.6 配置函数类型246
9.5 配置层次结构250
9.6 配置函数中的上下文255
9.6.1 上下文检查255
9.6.2 方法和〈Limint〉256
9.7 定制配置容器257
9.8 可选的配置方法261
9.9 小结262
第10章 扩展API263
10.1 在Apache中实现新的函数264
10.1.1 导出函数264
10.1.2 可选函数265
10.2 钩子与可选钩子267
10.2.1 进一步研究钩子程序267
10.2.2 执行顺序269
10.2.3 可选钩子示例:mod_authz_dbd270
10.3 提供者API272
10.3.1 实现274
10.3.2 实现提供者275
10.4 以服务方式提供API扩展277
10.4.1 例子:mod_dbd277
10.4.2 实现reslist278
10.5 跨平台API构建284
10.5.1 使用预处理指令285
10.5.2 声明模块API286
10.6 小结288
第11章 Apache数据库框架289
11.1 对新框架的需求290
11.1.1 Apache 1.x/2.0和Apache 2.2290
11.1.2 连接池290
11.2 DBD架构292
11.3 apr_dbd API292
11.3.1 数据库操作294
11.3.2 API函数298
11.4 使用ap_dbd API302
11.5 一个示例应用模块:mod_authn_dbd303
11.6 开发一个新的DBD驱动306
11.6.1 apr_dbd_internal.h头文件307
11.6.2 输出驱动307
11.6.3 驱动函数309
11.7 小结320
第12章 模块调试323
12.1 调试日志324
12.1.1 错误日志324
12.1.2 调试326
12.2 在调试器中运行Apache327
12.2.1 服务器的启动和调试329
12.2.2 调试和多道处理模块MPM331
12.2.3 追踪冲突331
12.2.4 调试核心Dump332
12.3 特殊用途的Hook和模块333
12.3.1 标准模块333
12.3.2 重大异常模块336
12.3.3 处理反常运行的模块337
12.4 过滤器调试338
12.4.1 mod_diagnostics338
12.5 小结341
附录A Apache许可证343
附录B 贡献者许可证协议349
附录C 超文本传送协议:HTTP/1.1357
本备忘录状态357
摘要358
1 概述358
1.1 目的358
1.2 要求359
1.3 术语359
1.4 操作概述364
2 符号惯例和一般语法366
2.1 扩充BNF366
2.2 基本规则368
3 协议参数370
3.1 HTTP版本370
3.2 统一资源标识符371
3.3 日期/时间格式373
3.4 字符集374
3.5 内容编码375
3.6 传送编码376
3.7 媒体类型379
3.8 产品记号381
3.9 质量值381
3.10 语言标签382
3.11 实体标签382
3.12 范围单位383
4 HTTP消息383
4.1 消息类型383
4.2 消息报头384
4.3 消息主体385
4.4 消息长度386
4.5 通用报头字段387
5 请求388
5.1 请求行(Request-Line)388
5.2 请求所标识的资源390
5.3 请求报头字段391
6 应答392
6.1 状态行392
6.2 应答报头字段394
7 实体394
7.1 实体报头字段395
7.2 实体主体395
8 连接396
8.1 持久连接396
8.2 消息传送需求400
9 方法定义403
9.1 安全和幂等的方法403
9.2 OPTIONS404
9.3 GET405
9.4 HEAD406
9.5 POST407
9.6 PUT408
9.7 DELETE409
9.8 TRACE409
9.9 CONNECT410
10 状态码定义410
10.1 用于报告的1xx410
10.2 成功的2xx411
10.3 重定向的3xx414
10.4 客户端错误的4xx418
10.5 服务器错误的5xx423
11 访问认证424
12 内容协商424
12.1 服务器驱动协商425
12.2 代理驱动协商426
12.3 透明协商427
13 HTTP中的缓存427
13.1 HTTP中缓存的基本设计理念428
13.2 过期模型433
13.3 验证模型438
13.4 应答缓存能力444
13.5 从缓存构造应答445
13.6 缓存协商的应答449
13.7 共享和非共享缓存450
13.8 错误和不完全应答缓存行为450
13.9 GET和HEAD的副作用451
13.10 刷新或删除后的无效性451
13.11 强制写通过452
13.12 缓存替换452
13.13 历史列表452
14 报头字段定义453
14.1 Accept(接受)453
14.2 Accept-Charset(接受字符集)455
14.3 Accept-Encoding(接受编码)456
14.4 Accept-Language(接受语言)457
14.5 Accept-Range(接受范围)459
14.6 Age(年龄)459
14.7 Allow(允许)459
14.8 Authorization(授权)460
14.9 Cache-control(缓存控制)461
14.10 Connection(连接)470
14.11 Content-Encoding(内容编码)471
14.12 Content-Language(内容语言)472
14.13 Content-Length(内容长度)473
14.14 Content-Location(内容位置)473
14.15 Content-MD5(内容的MD5值)474
14.16 Content-Range(内容范围)476
14.17 Content-Type(内容类型)478
14.18 Date(日期)478
14.19 ETag(实体标签)480
14.20 Expect(期望)480
14.21 Expire(过期)481
14.22 From(来自于)482
14.23 Host(主机)482
14.24 If-Match(如果匹配)483
14.25 If-Modified-Since(如果自从……被改变)484
14.26 If-None-Match(如果没有一个匹配)486
14.27 If-Range(如果有范围)487
14.28 If-Unmodified-Since(如果自从……未修改)488
14.29 Last-Modified(最后一次修改)488
14.30 Location(位置)489
14.31 Max-Forwards(最大化向前传送)489
14.32 Pragma(特殊指令)490
14.33 Proxy-Authenticate(代理认证)491
14.34 Proxy-Authorization(代理授权)491
14.35 Range(范围)492
14.36 Referer(参考者)494
14.37 Retry-After(稍后重试)494
14.38 Server(服务器)495
14.39 TE(传送编码)495
14.40 Trailer(跟踪器)497
14.41 Transfer-Encoding(传送编码)497
14.42 Upgrade(升级)498
14.43 User-Agent(用户代理)499
14.44 Vary(验证)499
14.45 Via(路由)500
14.46 Warning(警告)501
14.47 WWW-Authenticate(WWW-认证)504
15 安全考虑504
15.1 个人信息505
15.2 基于文件和路径名称的攻击507
15.3 DNS欺骗508
15.4 Location报头和欺骗508
15.5 Content-Disposition问题509
15.6 认证证书和空闲的客户端509
15.7 代理服务器和缓存509
16 致谢510
17 参考文献512
18 作者地址516
19 附录518
19.1 互联网媒体类型message/http和application/http518
19.2 互联网媒体类型multipart/byteranges519
19.3 可容忍的应用程序520
19.4 HTTP实体和RFC 2045实体之间的区别521
19.5 附加特性524
19.6 和以前版本的兼容525
20 索引529
21 全部版权声明530
致谢530
索引531
热门推荐
- 199460.html
- 3835520.html
- 586036.html
- 3839100.html
- 1438687.html
- 3234761.html
- 899576.html
- 3861134.html
- 1228233.html
- 1419403.html
- http://www.ickdjs.cc/book_2864186.html
- http://www.ickdjs.cc/book_529455.html
- http://www.ickdjs.cc/book_2454857.html
- http://www.ickdjs.cc/book_1036120.html
- http://www.ickdjs.cc/book_1131904.html
- http://www.ickdjs.cc/book_1557963.html
- http://www.ickdjs.cc/book_2442050.html
- http://www.ickdjs.cc/book_1180441.html
- http://www.ickdjs.cc/book_1133667.html
- http://www.ickdjs.cc/book_2531916.html