Apache 2.0 has some real advantages, but there are a few issues with this version that are not settled yet. Specifically, there are some unresolved difficulties in getting it to work with other software, such as PHP (4.1.x doesn't work), mod_perl, etc... These are all being worked out fairly quickly though, so I would expect within the next 2 or 3 months, it will be much easier to migrate to Apache 2.
Along with general performance enhancements and a cleaned-up codebase, there are three major advantages of Apache 2, as I understand it:
1. Each component has been modularized to a much greater extent than ever before. The details of serving HTTP data has been abstracted from the server-side processing interface, so that it is more possible for the HTTP part to be optimized for each platform. This is now called the Apache Portable Runtime, or APR. For example, the Windows version of Apache should now perform on par with the Unix version. Also, the APR on it's own can now be used as the HTTP output module for many other types of software, such as Java servlets.
2. The processing model itself has been modularized, with the concept of Multi Processing Modules (MPM). In the past, Apache handled multiple requests simply by having multiple "pre-forked" processes running. This was fine for Linux and some versions of Unix but very slow on Windows. Now, Apache can be run under three different models. a) as a preforked process, b) as a threaded process, or c) as a hybrid, with multiple processes, each handling a certain number of threads. In fact, there are other combinations of the above in the works also, such as the "perchild" model, which I don't fully understand yet.
3. The most interesting part, to me: Filtered I/O. This means that the output of one module can be used as the input of another module AS IF it were a file of its own. Let me rephrase that: For example, a mod_perl script can output data that can be then passed to PHP and parsed as a PHP script, which can then be passed as input to a server-side include, before finally being passed to the browser. The possibilities for this are endless! And it allows for easy re-working of existing web applications to plug into other applications.
These accomplishements, by the way, are a first for webserver software. I don't think there is any other webserver software (commercial OR open source) that does ANY of the three things mentioned above, much less all three. And this isn't the end. There are all kinds of other interesting enhancements. See
I think we will be busy for a few years figuring out all the cool stuff we can do with Apache 2 ;-). -------------------------------------------
"Now, this might cause some discomfort..."
(