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 1.3.23 Changelog
  • Fixed a number of mismatched int sizes and signedness problems. Still remains, MSVC's 'interesting' declaration of FD_SET still emits (impotent) warnings. [William Rowe]
  • mod_proxy changes:
  • Bug fix for ap_proxy_cache_conditional(), unititialized wetag [Zvi Har'El ]
  • Add persistent connection handling The patch changes mod_proxy to write the reply-headers using ap_send_http_header() instead of directly using ap_bvputs(). This not only simplifies mod_proxy, in my opinion at least, but enables it to make use of the features of Apache's normal header and persistent connection machinery. [Christian von Roques ]
  • Graham Leggett's original 1.3.12 patch, updated for 1.3.19+ Original comments:
  • HTTP/1.1 support for mod_proxy: - support for Cache-Control - conditional support If-Match, If-None-Match, If-Unmodified-Since, Etag - support for content negotiation using Vary - storing of request headers (for Vary support) in cache file - storing of updated response headers (with 304 Not Modified) in cache file - support for 64 bit dates and content-lengths in cache file Fixes: - ProxyPassReverse applied to Content-Location - entity headers no longer stripped from response after cache revalidation - annotation of mod_proxy cache code [Graham Leggett ]
  • changes to preserve binary compatibility with httpd core, clean up [Chuck Murcko ]
  • HPUX 11.*: Do not kill the child process when accept() returns ENOBUFS on HPUX 11.*. []
  • PORT: Numerous additions to Cygwin, including: defaulting to Posix thread accept mutex, excluding the call to pthread_mutexattr_setpshared(), better proxy and DBM support, and allowing the use of native Win32 socket ops instead of Cygwin's Posix wrapper (for better performance). The last item required the addition of a new Configure Rule: CYGWIN_WINSOCK. [Stipe Tolj ]
  • Use "httpready" accept filter rather than "dataready" on FreeBSD after 4.1.1-RELEASE where it works correctly. [Tony Finch]
  • Fix incorrect "Content-Length" header in the 416 "range not satisfiable" response. [Joe Orton ]
  • Add FileETag directive to control fields used when constructing an ETag for a file-based resource. Historically the inode, size, and mtimehave been used, but the inode factor broke caching for systems with content fan-out across multiple back-end servers. Now the fields used in the construction can be controlled by configuration directives. Minor MMN bumped; MMN went from 19990320.10 to 19990320.11. [Ken Coar, from a patch by Phil Dietz]
  • NetWare: Fixed the access forbidden problem when requesting an empty directory rather than showing the empty listing. [Charles Goldman, Guenter Knauf ]
  • Cause Win32 to capture all child-worker process errors in Apache to the main server error log, until the child can open it's own error logs. [William Rowe]
  • Revert mod_negotation's handling of path_info and query_args to the 1.3.20 behavior. PR: 8628, 8582, 8538 [William Rowe]
  • Modify buff.h and buff.c to enable modules to intercept the output byte stream for dynamic page caching. A pointer to a 'filter callback' function is added to the end of buff.h. This function, if registered by a module, is called at the top of buff_write() and writev_it_all(). [Kevin Mallory ]
  • When the default of 'Group #-1' was changed to 'Group "#-1"', the Makefile wasn't updated to recognise the quotation marks. [Owen Boyle ]
  • Win32: Do not allow threads to continue handling keepalive requests after a shutdown or restart has ben signaled. [Bill Stoddard]
  • Win32: Accept OPTIONS * requests. [Keith Wannamaker]
  • Unixware 7.0 and later did not have a default locking mechanism defined. This bug was introduced in apache 1.3.4. [Dean Gaudet]
  • Prevent an Apache module from being loaded or added twice due to duplicate LoadModule or AddModule directives (or a missing ClearModuleList directive). [William Rowe, Brian Pane ]
  • Add checkgid app to do run-time validation of Group directive values which might cause the server to fall over, but which are syntactically correct. [Ken Coar]
  • NetWare: Added mod_unique_id to the project file. [Brad Nicholes ]
  • NetWare: Fixed a link problem with mod_vhost_alias so that it exports the correct MODULE structure. PR 8598 [Brad Nicholes ]
  • Unix: The generated install script for binary distributions,, now makes DSO files executable, like make install. This allows a binary distribution to work on HP-UX without any manual intervention. PR 7428 [Jeff Trawick]
  • Win32: The Apache Win32 developers generally recommend that MaxRequestsPerChild be set to 0 to prevent the child process from ever recycling. However, for those that do require a non-zero setting, this patch fixes a serious bug that can cause an apparent 'server-hang' condition where the server stops responding to requests for a period of time. Prior to this fix, when the child process handled MaxRequestsPerChild connnections, the child process would stop accepting new connections and begin allowing inactive threads to exit. The problem was that a new process would not be created to begin handling requests until the old process fully exited. The old process can take an indeterminate amount of time to exit because it may be sending large responses to clients connected over slow links, or it may have threads blocked in read awaiting requests (eg, one attack mode of the Nimda worm is to establish a connection to the server but not send an HTTP request. This connection will be timed out according to the setting of the Timeout directive, 300 seconds). This fix allows the new process to be immediately started and begin accepting requests when the old child process reaches MaxRequestsPerChild. [Bill Stoddard] Win32: Emit error message when the server bumps up against the ThreadsPerChild configuration limit. This will be useful for admins to detect when their server is running out of threads to handle requests. [Bill Stoddard]
  • Test all directories listed with the UserDir directive for validity. Also resolves the Win32/Netware bug of unparsable quoted paths. PR 8238 [William Rowe]