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.2b7 Changelog
  • Port to UXP/DS(V20) [Toshiaki Nomura ]
  • unset Content-Length if chunked (RFC-2068) [Petr Lampa]
  • mod_negotiation fixes [Petr Lampa] PR#157, PR#158, PR#159 - replace protocol response numbers with symbols - save variant-list into main request notes - free allocated memory from subrequests - merge notes, headers_out and err_headers_out
  • changed status check mask in proxy_http.c from "HTTP/#.# ### *" to "HTTP/#.# ###*" to be more lenient about what we accept. [Chuck Murcko]
  • more proxy FTP bug fixes: - Changed send_dir() to remove user/passwd from displayed URL. - Changed login error messages to be more descriptive. - remove setting of SO_DEBUG socket option - Make ftp_getrc() more lenient about multiline responses, specifically, 230 responses which don't have continuation 230- on each line). These seem to be all NT FTP servers, and while perhaps questionable, they appear to be legal by RFC 959. - Add missing kill_timeout() after transfer to user completes. [Chuck Murcko]
  • Fixed problem where a busy server could hang when restarting after being sent a SIGHUP due to child processes not exiting. [Marc Slemko]
  • Modify mod_include escaping so a '\' only signifies an escaped character if the next character is one that needs escaping. [Ben Laurie]
  • Eliminated possible infinite loop in mod_imap when relative URLs are used with a 'base' directive that does not have a '/' in it. [Marc Slemko, reported by Onno Witvliet ]
  • Reduced the default timeout from 1200 seconds to 300, and the one in the sample configfile from 400 to 300. [Marc Slemko]
  • Stop vbprintf from crashing if given a NULL string pointer; print (null) instead. [Ken Coar]
  • Don't disable Nagle algorithm if system doesn't have TCP_NODELAY. [Marc Slemko and Roy Fielding]
  • Fixed problem with mod_cgi-generated internal redirects trying to read the request message-body twice. [Archie Cobbs and Roy Fielding]
  • Reduced timeout on lingering close, removed possibility of a blocked read causing the child to hang, and stopped logging of errors if the socket is not connected (reset by client). [Roy Fielding]
  • Rearranged main child loop to remove duplication of code in select/accept and keep-alive requests, fixed several bugs regarding checking scoreboard_image for exit indication and failure to account for all success conditions and trap all error conditions, prevented multiple flushes before closing the socket; close the entire socket buffer instead of just one descriptor, prevent logging of EPROTO and ECONNABORTED on platforms where supported, and generally improved readability. [Roy Fielding]
  • Extensive performance improvements. Cleaned up inefficient use of auto initializers, multiple is_matchexp calls on a static string, and excessive merging of response_code_strings. [Dean Gaudet]
  • Added double-buffering to mod_include to improve performance on server-side includes. [Marc Slemko]
  • Several fixes for suexec wrapper. [Randy Terbush] - Make wrapper work for files on NFS filesystem. - Fix portability problem of MAXPATHLEN. - Fix array overrun problem in clean_env(). - Fix allocation of PATH environment variable
  • Removed extraneous blank line is description of mod_status chars. [Kurt Kohler]
  • Logging of errors from the call_exec routine simply went nowhere, since the logfile fd has been closed, so now we send them to stderr. [Harald T. Alvestrand]
  • Fixed core dump when DocumentRoot is a CGI. [Ben Laurie, reported by ]
  • Fixed potential file descriptor leak in mod_asis; updated it and http_core to use pfopen/pfclose instead of fopen/fclose. [Randy Terbush and Roy Fielding]
  • Fixed handling of unsigned ints in ap_snprintf() on some chips such as the DEC Alpha which is 64-bit but uses 32-bit ints. [Dean Gaudet and Ken Coar]
  • Return a 302 response code to the client when sending a redirect due to a missing trailing '/' on a directory instead of a 301; now it is cacheable. [Markus Gyger]
  • Fix condition where, if a bad directive occurs in .htaccess, and sub_request() goes first to this directory, then log_reason() will SIGSEGV because it doesn't have initialized r->per_dir_config. [PR#162 from Petr Lampa, fix by Marc Slemko and Dean Gaudet]
  • Fix handling of lang_index in is_variant_better(). This was causing problems which resulted in the server sending the wrong language document in some cases. [Petr Lampa]
  • Remove free() from clean_env() in suexec wrapper. This was nuking the clean environment on some systems.
  • Tweak byteserving code (e.g. serving PDF files) to work around bugs in Netscape Navigator and Microsoft Internet Explorer. Emit Content-Length header when sending multipart/byteranges. [Alexei Kosut]
  • Port to HI-UX/WE2. [Nick Maclaren]
  • Port to HP MPE operating system for HP 3000 machines [Mark Bixby ]
  • Fixed bug which caused a segmentation fault if only one argument given to RLimit* directives. [Ed Korthof]
  • Continue persistent connection after 204 or 304 response. [Dean Gaudet]
  • Improved buffered output to the client by delaying the flush decision until the BUFF code is actually about to read the next request. This fixes a problem introduced in 1.2b5 with clients that send an extra CRLF after a POST request. Also improved chunked output performance by combining writes using writev() and removing as many bflush() calls as possible. NOTE: Platforms without writev() must add -DNO_WRITEV to the compiler CFLAGS, either in Configuration or Configure, unless we have already done so. [Dean Gaudet]
  • Fixed mod_rewrite bug which truncated the rewritten URL [Marc Slemko]
  • Fixed mod_info output corruption bug introduced by buffer overflow fixes. [Dean Gaudet]
  • Fixed http_protocol to correctly output all HTTP/1.1 headers, including for the special case of a 304 response. [Paul Sutton]
  • Improved handling of TRACE method by bypassing normal method handling and header parsing routines; fixed Allow response to always allow TRACE. [Dean Gaudet]
  • Fixed compiler warnings in the regex library. [Dean Gaudet]
  • Cleaned-up some of the generated HTML. [Ken Coar]