Project description.

The Apache HTTP Server Project is an effort to develop and maintain an open-source HTTP server for modern operating systems including UNIX and Windows NT.

The goal of this project is to provide a secure, efficient and extensible server that provides HTTP services in sync with the current HTTP standards

Apache 2.0.26 Changelog
  • Port the MaxClients changes from the worker MPM to the threaded MPM. [Ryan Bloom]
  • Fix mod_proxy so that it handles chunked transfer-encoding and works with the new input filtering system. [Justin Erenkrantz]
  • Introduce the MultiviewsMatch directive, to allow the operator to be flexible in recognizing Handlers and Filters filename extensions as part of the Multiviews matching logic, strict with MultiviewsMatch NegotiatedOnly to accept only filename extentions that designate negotiated parameters, (content type, charset, etc.) or MultiviewsAll for the 1.3 behavior of matching any files, even if they have unregistered extensions. [William Rowe]
  • Fixed the configure script to add a LoadModule directive to the default httpd.conf for any module that was compiled as a DSO. [Aaron Bannert ]
  • rewrite mod_ssl input filtering to work with the new input filtering system. [Justin Erenkrantz]
  • prefork: Don't segfault when we are able to listen on some but not all of the configured ports. [Jeff Trawick]
  • Build mod_so even if no core modules are built shared. [Aaron Bannert ]
  • Introduce ap_directory_walk rewrite (with further optimizations required) to adapt to the ap_process_request_internal() changes. Optimized so subrequests and redirects now reuse previous section merges, until we mismatch with the original directory_walk, and precomputed r->finfo results will cause directory_walk to skip the most expensive phases of the function. [William Rowe]
  • Allow ApacheMonitor to connect to and control Apache on other WinNT/2K machines. [Mladen Turk ]
  • Remove the Port directive. In it's place, the Listen directive is now a required directive, which tells Apache what port to listen on. The ServerName directive has also been extended to accept an optional port. If the port is specified to the ServerName, the server will report that port whenever it reports the port that it is listening on. This change was made to ease configuration errors that stem from having a Port directive, and a Listen directive. In that situation, the server would only listen to the port specified by the Listen command, which caused a lot of confusion to users. [Ryan Bloom]
  • Added mod_mime_magic, mod_unique_id and mod_vhost_alias to the Win32 build, as loadable modules. [William Rowe]
  • Fix --enable-mods-shared processing. If most is specified, then all modules that can be compiled as shared modules are. [Aaron Bannert ]
  • Update the mime.types file to map video/vnd.mpegurl to mxu and add commonly used audio/x-mpegurl for m3u extensions. [Heiko Recktenwald , Lars Eilebrecht]
  • Eliminate the depreciated r->content_language, in favor of the array r->content_languages introduced many years ago. Module authors must substantially overhaul their modules, so this needs to be upgraded if the module still relied on backwards-brokeness. [William Rowe]
  • Allow configure help strings to work with autoconf 2.50+ and 2.13. [Justin Erenkrantz]
  • Rewrite the input filtering mechanisms to consolidate and reorganize code. In short, core_input_filter does something now and ap_http_filter is now only concerned with HTTP. [Justin Erenkrantz]
  • Update the Win32 build to re-absorb mod_proxy and family. [William Rowe]
  • Resolved the build failure on Win32 using MSVC 5.0 (without the current SDK.) [William Rowe]
  • Some style changes to the code that does ProxyErrorOverride. Fixed config merge behaviour. [Graham Leggett]
  • Allow support programs to be compiled against a static version of libapr. This allows the smaller support programs to be relocated. [Aaron Bannert ]
  • Update the mime.types file to the registered media types as of 2001-09-25, and add mapping for xsl extension [Mark Cox]
  • Fix MaxClients in the Worker MPM, so that it specifies the maximum number of clients that can connect at the same time, instead of specifying the maximum number of child processes. [Aaron Bannert ]
  • Switch proc_pthread AcceptMutex configuration directive to pthread to be consistent with 1.3. [Justin Erenkrantz]
  • Cache apr_explode_localtime() value for 15 seconds. [Brian Pane ]
  • Fix mod_include to not return ETag or Last-Modified headers. [Ian Holsman ]
  • Fix worker MPM's scoreboard logic. [Aaron Bannert ]
  • Eliminate the wasteful run-time conversion of method names from strings to numbers in places where the methods are known at compile time. [Brian Pane ]
  • Turn the worker MPM's queue into a LIFO. This may improve cache-hit performance under some conditions. [Aaron Bannert ]
  • Switch back to SIGUSR1 for graceful restarts on all platforms that support it. [Justin Erenkrantz]
  • Cleanup the worker MPM. We no longer re-use transaction pools. This incurs less overhead than shuffling the pools around so that they can be re-used. Remove one of the queue's condition variables. We just redefined the API to state that you can't try to add more stuff than you allocated segments for. [Aaron Bannert ]
  • Fix SSL VPATH builds [Cody Sherr ]
  • Fixed persistent connections when a request contains a body. [Greg Stein]
  • mod_dav uses a new API to speak to the backend provider for dead property management. [Greg Stein]
  • Remove the Win32 script-processing exception from mod_cgi, and roll build_command_line/build_argv_list into a unified, overrideable ap_cgi_build_command optional function. [William Rowe]
  • Rewrite find_start_sequence to use a better search algorithm to find the start tag. [Justin Erenkrantz]
  • Fix a seg fault in mod_include. When we are generating an internal redirect, we must set r->uri to "", not a bogus string, and not NULL. [Ryan Bloom]
  • Optimized location_walk, so subrequests, redirects and second passes now reuse previous section merges on a by basis, until we mismatch with the original location_walk. [William Rowe]
  • Back out the 1.45 change to util_script.c. This change made us set the environment variable REQUEST_URI to the redirected URI, instead of the originally requested URI. [Taketo Kabe ]
  • Make mod_include do lazy evaluation of potentially expensive to compute variables. [Brian Pane ]
  • Fix logging of bytes sent for HEAD requests. %b and %B should log either - or 0, before this patch, they were both logging the file size. [Taketo Kabe ]
  • Make mod_include check for BYTE_CHECK_THRESHOLD per bucket rather than per character. [Brian Pane ]
  • Normalize the primary request, redirects and sub-requests to run the same ap_process_request_internal for consistency in robustness, behavior and security. [William Rowe]
  • Fix a segfault with mod_include when r->path_info is not set (which is the case with mod_proxy). [Ian Holsman ]
  • Add -X functionality back. This indicates to all MPMs and any other part of Apache that it should run in "debug" mode. [Justin Erenkrantz]
  • Some initial support for the cygwin platform [prefork only]. This is not to be confused with support for the WinNT/Win32 platform, which is the recommended configuration for native Win32 users. The cygwin platform support is recommended for cygwin platform users. [Stipe Tolj ]
  • Changed syntax of Set{Input|Output}Filter. The list of filters must be semicolon delimited (if more than one filter is given.) The Set{Input|Output}Filter directive now overrides a parent container's directive (e.g. SetInputFilter in will override any SetInputFilter directive in .) This new syntax is more consistent with Add{Input|Output}Filter directives defined in mod_mime. Also cures a bug in prior releases where the Set{Input|Output}Filter directive would corrupt the global configuration if the multiple directives were nested. [William Rowe]
  • Cured what's ailed mime for quite some time. If an AddSomething was given in the configuration (Language, Charset, Handler or Encoding) Apache would set the content type as given by AddType, but refused to check the mime.types file if AddType wasn't given for that specific extension. Setting the AddHandler for .html without setting the AddType text/html html would cause Apache to use the default content type. [William Rowe]
  • Added some bulletproofing to memory allocation in the LDAP cache code. [Graham Leggett]