Chapter 1 Applications Development with Apache
1.1 A Brief History of the Apache Web Server
1.2 The Apache Software Foundation
1.3 The Apache Development Process
1.4 Apache and Intellectual Property
1.4.2 Third-Party Intellectual Property
1.5.1 Interactive Online Forums
Chapter 2 The Apache Platform and Architecture
2.3.3 Working with MPMs and Operating Systems
2.4 Basic Concepts and Structures
2.6 Apache Configuration Basics
2.7 Request Processing in Apache
2.7.2 Request Processing Phases
2.7.4 The Data Axis and Filters
Chapter 3 The Apache Portable Runtime
3.3.1 Reference Manual: API Documentation and Doxygen
3.3.4 apr_status_t and Return Values
3.4 Resource Management: APR Pools
3.4.1 The Problem of Resource Management
3.5.8 Encoding and Cryptography
3.6.2 SQL Databases and apr_dbd
Chapter 4 Programming Techniques and Caveats
4.3 Communicating Between Modules
4.4 Thread-Safe Programming Issues
4.5.2 Memory/Resource Management
4.6 Cross-Platform Programming Issues
4.6.1 Example: Creating a Temporary File
4.7 Cross-MPM Programming Issues
4.7.1 Process and Global Locks
4.8.1 The Precautionary Principle: Trust Nothing
4.8.2 Denial of Service: Limit the Damage
4.8.3 Help the Operating System to Help You
4.9 External Dependencies and Libraries
4.9.3 Building Modules with Libraries
4.10 Modules Written and Compiled in Other Languages
Chapter 5 Writing a Content Generator
5.1.5 Using the request_rec Object
5.2 The Request, the Response, and the Environment
Chapter 6 Request Processing Cycle and Metadata Handlers
6.1.2 Anatomy of an HTTP Request
6.2 Request Processing in Apache
6.2.1 Mapping to the Filesystem
6.3 Diverting a Request: The Internal Redirect
6.3.2 Dealing with Malformed and Malicious Requests
6.4 Gathering Information: Subrequests
6.5.1 Selecting Different Variants of a Document
6.5.2 Error Handling and Reusability
Chapter 7 AAA: Access, Authentication, and Authorization
7.1.1 Authentication: Levels of Security
7.4.1 Host-Based Access Control
7.4.2 Authentication: check_user_id
7.5.1 Authentication and Require
7.6.1 A Basic Authentication Provider
7.6.2 An Authorization Function
7.6.4 Basic and Digest Authentication Providers
7.7 Implementing a Custom Login Scheme
7.7.1 Session Management with SQL
7.7.2 Working Without Browser Authentication Dialogs
8.2 Content, Protocol, and Connection Filters
8.4 The Filter API and Objects
8.7 Smart Filtering in Apache 2.2
8.7.1 Preprocessing and Postprocessing
8.7.3 Filter Self-configuration
8.8 Example: Filtering Text by Direct Manipulation of Buckets
8.10 Filtering Through an Existing Parser
8.12 Input Filters and the Pull API
Chapter 9 Configuration for Modules
9.2 Configuration Data Structs
9.3 Managing a Module Configuration
9.3.2 Server and Directory Configuration
9.4 Implementing Configuration Directives
9.4.3 User Data in Configuration Functions
9.4.4 Prepackaged Configuration Functions
9.4.6 Configuration Function Types
9.5 The Configuration Hierarchy
9.6 Context in Configuration Functions
9.7 Custom Configuration Containers
9.8 Alternative Configuration Methods
10.1 Implementing New Functions in Apache
10.2.3 Optional Hooks Example: mod_authz_dbd
10.3.2 Implementing a Provider
10.4.2 Implementing the reslist
10.5 Cross-Platform API Builds
10.5.1 Using Preprocessor Directives
10.5.2 Declaring the Module API
Chapter 11 The Apache Database Framework
11.1 The Need for a New Framework
11.1.1 Apache 1.x/2.0 Versus Apache 2.2
11.5 An Example Application Module: mod_authn_dbd
11.6 Developing a New DBD Driver
11.6.1 The apr_dbd_internal.h Header File
12.2 Running Apache Under a Debugger
12.2.1 Server Start-up and Debugging
12.3 Special-Purpose Hooks and Modules
12.3.2 Fatal Exception Modules
12.3.3 Modules to Deal with Abnormal Running
Appendix B Contributor License Agreements
Appendix C Hypertext Transfer Protocol: HTTP/1.1
2 Notational Conventions and Generic Grammar
3.2 Uniform Resource Identifiers
5.2 The Resource Identified by a Request
8.2 Message Transmission Requirements
9.1 Safe and Idempotent Methods
12.1 Server-Driven Negotiation
13.5 Constructing Responses from Caches
13.6 Caching Negotiated Responses
13.7 Shared and Non-shared Caches
13.8 Errors or Incomplete Response Cache Behavior
13.9 Side Effects of GET and HEAD
13.10 Invalidation After Updates or Deletions
15.2 Attacks Based on File and Path Names
15.4 Location Headers and Spoofing
15.5 Content-Disposition Issues
15.6 Authentication Credentials and Idle Clients
19.1 Internet Media Type message/http and application/http
19.2 Internet Media Type multipart/byteranges
19.4 Differences Between HTTP Entities and RFC 2045 Entities
18.118.32.222