Programming Books C Java PHP Python Learn more Browse Programming Books
The Apache Modules Book: Application Development with Apache and over one million other books are available for Amazon Kindle. Learn more
Qty:1
  • List Price: $59.99
  • Save: $10.10 (17%)
Only 10 left in stock (more on the way).
Ships from and sold by Amazon.com.
Gift-wrap available.
Add to Cart
Used: Very Good | Details
Sold by tamarbooks
Condition: Used: Very Good
Comment: Paperback in very good condition.
Access codes and supplements are not guaranteed with used items.
Add to Cart
Trade in your item
Get a $3.41
Gift Card.
Have one to sell? Sell on Amazon
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See this image

The Apache Modules Book: Application Development with Apache Paperback – February 5, 2007

ISBN-13: 978-0132409674 ISBN-10: 0132409674 Edition: 1st

Buy New
Price: $49.89
35 New from $45.24 27 Used from $10.85
Amazon Price New from Used from
eTextbook
"Please retry"
Paperback
"Please retry"
$49.89
$45.24 $10.85

Free%20Two-Day%20Shipping%20for%20College%20Students%20with%20Amazon%20Student



Frequently Bought Together

The Apache Modules Book: Application Development with Apache + Writing Apache Modules with Perl and C: The Apache API and mod_perl + Apache 2 Pocket Reference: For Apache Programmers & Administrators (Pocket Reference (O'Reilly))
Price for all three: $102.91

Buy the selected items together

Customers Who Bought This Item Also Bought

NO_CONTENT_IN_FEATURE

Save up to 90% on Textbooks
Rent textbooks, buy textbooks, or get up to 80% back when you sell us your books. Shop Now

Product Details

  • Paperback: 592 pages
  • Publisher: Prentice Hall; 1 edition (February 5, 2007)
  • Language: English
  • ISBN-10: 0132409674
  • ISBN-13: 978-0132409674
  • Product Dimensions: 1.3 x 6.9 x 9 inches
  • Shipping Weight: 1.8 pounds (View shipping rates and policies)
  • Average Customer Review: 4.2 out of 5 stars  See all reviews (12 customer reviews)
  • Amazon Best Sellers Rank: #627,634 in Books (See Top 100 in Books)

Editorial Reviews

About the Author

Nick Kew is a leading developer of Apache applications, many of which can be found at his company's site, http://apache.webthing.com. He is a member of the Apache Web server core development team and of the Apache Software Foundation. He is active in both user and developer support, and gives tutorials and presentations at relevant conferences such as ApacheCon. He created and maintains http://www.apachetutor.org, and writes on Apache topics for a range of leading online publications.

Excerpt. © Reprinted by permission. All rights reserved.

Introduction

The Apache Web Server (commonly known as "Apache") is, by most measures, the leading server on the Web today. For ten years it has been the unrivaled and unchallenged market leader, with approximately 70 percent of all websites running Apache. It is backed by a vibrant and active development community that operates under the umbrella of the Apache Software Foundation (ASF), and it is supported by a wide range of people and organizations, ranging from giants such as IBM down to individual consultants.

The key characteristics of Apache are its openness and diversity. The source code is completely open: Not only the current version, but also past versions and experimental development versions can be downloaded by anyone from apache.org. The development process is also open, with the exception of a few matters dealing with project management. Apache's diversity is a reflection of its user and developer communities: It is equally at home in an ultra-high-volume site that receives tens of thousands of hits per second, a complex and highly dynamic web application, a bridge to a separate application server, or a simple homepage host. The inclusion of developers from such diverse roles helps ensure that Apache continues to serve all of these widely differing environments successfully.

Yet that doesn't mean Apache follows a one-size-fits-all approach. Its highly modular architecture is built on a small core, which enables every user to tailor it to meet his or her own specific needs. Apache serves equally well as a stand-alone webserver or a component in some other system. Most importantly, it is a highly flexible and extensible applications platform.

Audience and Readership

This book is intended for software developers who are working with the Apache Web Server. It is the first such book published since March 1999, and the first and (to date) only developer book that is relevant to Apache 2.

The book's primary purpose is to serve as an in-depth textbook for module developers working with Apache. The narrative and examples deal with development in C, and a working knowledge of C is assumed. However, the Apache architecture and API are shared by major scripting environments such as mod_perl and mod_python, as well as C. With the exception of Chapter 3 (on the Apache Portable Runtime), much of this book should also be relevant to developers working with scripting languages at any level more advanced than standard CGI. The current Apache release—version 2.2—is the primary focus of this book. Version 2.2.0 was released in December 2005 and, given Apache's development cycle, is likely to remain current for some time (the previous stable version 2.0 was released in April 2002). This book is also very relevant to developers who are still working with version 2.0 (the architecture and API are substantially the same across all 2.x versions), and is expected to remain valid for the foreseeable future.

Organization and Scope

This book comprises twelve chapters and three appendixes.

The first chapter is a nontechnical overview that sets the scene and introduces the social, cultural, and legal background of Apache. It is followed by an extended technical introduction and overview that is spread over the next three chapters. Chapter 2 is a technical overview of the Apache architecture and API. Chapter 3 introduces the Apache Portable Runtime (APR), a semi-autonomous library that is used throughout Apache and relieves the programmer of many of the traditional burdens of C programming. Chapter 4 discusses general programming techniques appropriate to working with Apache, to ensure that your modules work well across different platforms and environments, remain secure, and don't present difficulties to systems administrators.

The central part of the book moves from the general to the specific. Chapters 5-8 present detailed discussions of various aspects of the core function of a webserver-- namely, processing HTTP requests. A number of real-life modules are developed in these chapters. Chapter 5 starts with a "Hello World" example and takes you to the point where you can duplicate the function of a CGI or PHP script as a module. Chapter 6 describes the request processing cycle and working with HTTP metadata. Chapter 7 goes into more detail about identifying users and handling access control. Chapter 8 presents the filter chain and techniques for transforming incoming and outgoing data; it includes a thorough theoretical exposition and several examples. Chapter 9 completes the core topics by describing how to work with configuration data.

Chapters 10 and 11 present more advanced topics that are nevertheless essential reading for serious application developers. Chapter 10 looks at the mechanics of how the API works, and describes how a module can extend it or introduce an entirely new API or service for other modules. Chapter 11 presents the DBD framework for SQL database applications. Chapter 12 briefly discusses troubleshooting and debugging techniques.

The appendixes include Apache legal documents reproduced from the Web. They are extremely relevant to the book but were not written by the author. Appendix A is the Apache License. Appendix B includes the Contributor License Agreements, which cover issues related to intellectual property. Finally, the authoritative Hypertext Transfer Protocol (HTTP/1.1) standard (RFC 2616) is reproduced in full in Appendix C as reference documentation for developers of web applications.

What the Book Does Not Cover

This book is firmly focused on applications development, so it has very little to say about systems programming for or with Apache. In particular, if your goal is to port Apache to a hitherto-unsupported platform, the book offers no more than a pointer to the areas of code you'll need to work on.

Apart from that, there is one important omission: The book limits itself to considering Apache as a server for HTTP (and HTTPS), the protocol of the Web. Although the server can be used to support other protocols, and implementations already exist for FTP, SMTP, and echo, this book has nothing to say on the subject. Nevertheless, if you are looking to implement or work with another protocol, the overview and the discussion of HTTP protocol handling should help you get oriented.

Sources

Some of the modules used as examples are written especially for this book or similar instructional materials:

  • Chapter 5: mod_helloworld
  • Chapter 6: mod_choices (derived from a non-open-source module)
  • Chapter 7: mod_authnz_day
  • Chapter 8: mod_txt (written originally for http://www.apachetutor.org)

These modules can be downloaded from http://www.apachetutor.org.

All of the more substantial modules are taken from real-life sources. Except where otherwise indicated and referenced by URL, all modules are taken from either the Apache standard distribution (http://httpd.apache.org) or the author's company's site (http://apache.webthing.com). Please note that the use of any source code in this book does not imply a license to copy it other than for purely personal use. Please refer to the license terms in the original sources of each module.


More About the Author

Discover books, learn about writers, read author blogs, and more.

Customer Reviews

4.2 out of 5 stars
5 star
7
4 star
2
3 star
2
2 star
0
1 star
1
See all 12 customer reviews
This book makes getting started much easier.
S. Podell
It follows on to describe things well, giving good examples, and providing a bit of a tutorialized approach.
Bradley Goodman
It's the best, most consitent, and approachable guide you'll find to writing Apache modules.
I Feel Fine

Most Helpful Customer Reviews

21 of 21 people found the following review helpful By I Feel Fine on November 25, 2007
Format: Paperback
This book easily earns five stars despite a few glaring issues. Why? It's the best, most consitent, and approachable guide you'll find to writing Apache modules.

I spent two weeks scouring the net for APR examples and explanations. I started with the O'Reilly books only to find they are incredibly out of date. I moved on to Apache sanctioned module source code. I dissected source code for other modules only to find that the examples fluctuated on approach and, apparently, on the author's grasp of the entire APR libraries. Some folks wrote against previous APR version libraries and macros. Others used the updated APR. Still others rolled their own versions of functions that were already written, just not discovered. Tutorials varied in reliability with similar issues. And my desk quickly filled with highlighted and sticky-noted annotated examples.

This book replaced all those loose inconsistent notes with a solid example-centric nicely bound guide. Five stars. Just for that.

This book is not without problems though. First, it makes reference to programming paradigms which, frankly, I've never heard of before and which this book inadequately explains. Brigade buckets is an example. Bridage buckets are incrementally explained as a ring data store (eh?), a doubly linked list (okay, firm ground), and then a mechanism for passing data through layered IO (another eh?). I couldn't get much from the explanation. Googling "brigade bucket" led to IEEE DSP circuit design and a heated debate on using solid state delay effects for guitar pedals. Apparently brigade buckets don't quote share the same prolific status as, say, something more Knuth-ess.

The book explained thread safety in a similarly gap toothed summary.
Read more ›
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
8 of 8 people found the following review helpful By D. Gentry on August 27, 2007
Format: Paperback
I tried to write an Apache module using only the documentation and reference material available on the net, and failed. The documentation you can find on the net (even on Apache.org's own website) is either completely out of date or maddeningly vague. If you spend enough time in trial and error you might get your module to work. Then again, you might not.

If you're trying to write or maintain an Apache module, this book is an invaluable tutorial and resource. It saved me a great deal of time and frustration.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
10 of 11 people found the following review helpful By Anthony Lawrence VINE VOICE on March 9, 2007
Format: Paperback
I was (pleasantly) surprised by this.

I drive my website with Perl cgi scripts - basically a home grown CMS that gives me the control I want. I'd never thought much about the inner workings of the modules I do use, and certainly never thought that I could replace a tremendous amount of my cgi Perl code with a direct module. But after reading this, I realized it wouldn't be all that hard to do.

Now it is true that I haven't done much with C for a long, long time. In spite of that, I feel reasonably confident that I could extend the examples given in Nick's book to do exactly what I need much more quickly and efficiently - sure, there are higher level tasks that might be more than I could tackle, but the basics seem quite easy and attainable.

Well written, easy to follow (and downloadable) examples, and at least as far as I can tell, quite comprehensive. Good job!
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
6 of 6 people found the following review helpful By Brooks A. Sizemore on May 9, 2007
Format: Paperback Verified Purchase
This book came recommended to me from a well-learned Apache module developer, and I can't laud it enough. It is simply impossible to find another reference text out there that covers this topic with this level of completeness. I'm not really sure why the HTTP RFC and the Apache Software License is tacked on to the end of the book, but the real content of the book make it well worth the relatively hefty price tag.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
4 of 4 people found the following review helpful By Midwest Book Review on May 7, 2007
Format: Paperback
Apache is more than a popular Web server; it's a versatile and complex platform covered well in THE APACHE MODULES BOOK, the first guide for developers who already work with Apache and want to make the most of its features. From code security and basic processing to C-based shortcuts and techniques, APACHE MODULES BOOK uses real-world code examples and techniques to provide an excellent manual of basics. Perfect for any serious programmer's Apache reference collection.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
3 of 3 people found the following review helpful By Brian McCallister on May 1, 2008
Format: Paperback
This should be considered a required resource if you need to learn about writing apache modules. It is the best introduction available to writing modules for Apache 2, and holds up well as a reference.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again

Customer Images

Search

What Other Items Do Customers Buy After Viewing This Item?