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.3a1 Changelog
  • Added another Configure helper script: TestLib. It determines if a specified library exists. [Jim Jagielski]
  • PORT: Allow for use of n32bit libraries under IRIX 6.x [derived from patch from Jeff Hayes ] PR#721
  • PORT: Some architectures use size_t for various lengths in network functions such as accept(), and getsockname(). The definition NET_SIZE_T is used to control this. [Dean Gaudet]
  • PORT: Linux: Attempt to detect glibc based systems and include crypt.h and -lcrypt. Test for various db libraries (dbm, ndbm, db) when mod_auth_dbm or mod_auth_db are included. [Dean Gaudet]
  • PORT: QNX doesn't have initgroups() which support/suexec.c uses. [Igor N Kovalenko ]
  • "force-response-1.0" now only applies to requests which are HTTP/1.0 to begin with. "nokeepalive" now works for HTTP/1.1 clients. Added "downgrade-1.0" which causes Apache to pretend it received a 1.0. [Dean Gaudet] related PR#875
  • API: Correct child_init() slot declaration from int to void, to match the init() declaration. Update mod_example to use the new hook. [Ken Coar]
  • added transport handle slot (t_handle) to the BUFF structure [Doug MacEachern]
  • get_client_block() returns wrong length if policy is REQUEST_CHUNKED_DECHUNK. [Kenichi Hori ] PR#815
  • Support the image map format of FrontPage. For example: rect /url.hrm 10 20 30 40 ["Chris O'Byrne" ] PR#807
  • PORT: -lresolv and -lsocks were in the wrong order for Solaris. ["Darren O'Shaughnessy" ] PR#846
  • AddModuleInfo directive for mod_info which allows you to annotate the output of mod_info. ["Lou D. Langholtz" ]
  • Added NoProxy directive to avoid using ProxyRemote for selected addresses. Added ProxyDomain directive to cause unqualified names to be qualified by redirection. [Martin Kraemer ]
  • Support Proxy Authentication, and don't pass the Proxy-Authorize header to the remote host in the proxy. [Sameer Parekh and Wallace]
  • Upgraded mod_rewrite from 3.0.6+ to latest officially available version 3.0.9. This upgrade includes: fixed deadlooping on rewriting to same URLs, fixed rewritelog(), fixed forced response code handling on redirects from within .htaccess files, disabled pipe locking under braindead SunOS 4.1.x, allow env variables to be set even on rules with no substitution, bugfixed situations where HostnameLookups is off, made mod_rewrite more thread-safe for NT port and fixed problem when creating an empty query string via "xxx?". This update also removes the copyright of Ralf S. Engelschall, i.e. now mod_rewrite no longer has a shared copyright. Instead is is exclusively copyrighted by the Apache Group now. This happened because the author now has gifted mod_rewrite exclusively to the Apache Group and no longer maintains an external version. [Ralf S. Engelschall]
  • API: Added child_init function to module structure. This is called once per "heavy-weight process" before any requests are handled. See http_config.h for more details. [Dean Gaudet]
  • Anonymous_LogEmail was logging on each subrequest. [Dean Gaudet] PR#421, 868
  • API: Added is_initial_req() which tests if the request being processed is the initial request, or a subrequest. [Doug MacEachern]
  • Extended SSI (mod_include) now handles additional relops for string comparisons (<, >, <=, and >=). [Bruno Wolff III] PR#41
  • Configure fixed to correctly propagate user-selected options and settings (such as CC and OPTIM) to Makefiles other than src/Makefile (notably support/Makefile). [Ken Coar] PR#666, #834
  • IndexOptions SuppressHTMLPreamble now causes the actual HTML of directory indices to start with the contents of the HeaderName file if there is one. If there isn't one, the behaviour is unchanged. [Ken Coar, Roy Fielding, Andrey A. Chernov]
  • WIN32: Modules can now be dynamically loaded DLLs using the LoadModule/LoadFile directives. Note that module DLLs must be compiled with the multithreaded DLL version of the runtime library. [Alexei Kosut and Ben Laurie]
  • Automatic indexing removed from mod_dir and placed into mod_autoindex. This allows the admin to completely remove automatic indexing from the server, while still supporting the basic functions of trailing-slash redirects and DirectoryIndex files. Note that if you're carrying over an old Configuration file and you use directory indexing then you'll want to add:
  • Module autoindex_module mod_autoindex.o
  • before mod_dir in your Configuration. [Dean Gaudet]
  • popendir/pclosedir created to properly protect directory scanning. [Dean Gaudet] PR#525
  • AliasMatch, ScriptAliasMatch and RedirectMatch directives added, giving regex support to mod_alias. , and sections added to succeed , etc... [Alexei Kosut]
  • The AccessFileName directive can now take more than one filename. ["Lou D. Langholtz" ]
  • The new mod_mime_magic can be used to "magically" determine the type of a file if the extension is unknown. Based on the unix file(1) command. [Ian Kluft ]
  • We now determine and display the time spent processing a request if desired. [Jim Jagielski]
  • mod_status: PID field of "dead" child slots no longer displays main httpd process's PID. [Jim Jagielski]
  • Makefile.nt added - to build all the bits from the command line: nmake -f Makefile.nt Doesn't yet work properly. [Ben Laurie]
  • Default text of 404 error is now "Not Found" rather than the potentially misleading "File Not Found". [Ken Coar]
  • CONFIG: "HostnameLookups" now defaults to off because it is far better for the net if we require people that actually need this data to enable it. [Linus Torvalds]
  • directory_walk() is an expensive function, keep a little more state to avoid needless string counting. Add two new functions make_dirstr_parent and make_dirstr_prefix which replace all existing uses of make_dirstr. The new functions are a little less general than make_dirstr, but work more efficiently (less memory, less string counting). [Dean Gaudet]
  • EXTRA_LFLAGS was changed to EXTRA_LDFLAGS (and LFLAGS was changed to LDFLAGS) to avoid complications with lex rules in make files. [Dean Gaudet] PR#372
  • run_method optimized to avoid needless scanning over NULLs in the module list. [Dean Gaudet]
  • Revamp of (unix) scoreboard management code such that it avoids unnecessary traversals of the scoreboard on each hit. This is particularly important for high volume sites with a large HARD_SERVER_LIMIT. Some of the previous operations were O(n^2), and are now O(n). See also SCOREBOARD_MAINTENANCE_INTERVAL in httpd.h. [Dean Gaudet]
  • In configurations using multiple Listen statements it was possible for busy sockets to starve other sockets of service. [Dean Gaudet]
  • Added hook so standalone_main can be replaced at compile time (define STANDALONE_MAIN) [Doug MacEachern]
  • Lowest-level read/write functions in buff.c will be replaced with the SFIO library calls sfread/sfwrite if B_SFIO is defined at compile time. The default sfio discipline will behave as apache would without sfio compiled in. [Doug MacEachern]
  • Enhance UserDir directive (mod_userdir) to accept a list of usernames for the 'disable' keyword, and add 'enable user...' to selectively *en*able userdirs if they're globally disabled. [Ken Coar]
  • If NETSCAPE_DBM_COMPAT is defined in EXTRA_CFLAGS then Apache will work with Netscape dbm files. (dbmmanage will probably not work however.) [Alexander Spohr ] PR#444
  • Add a ListenBacklog directive to control the backlog parameter passed to listen(). Also change the default to 511 from 512. [Marc Slemko]
  • API: A new handler response DONE which informs apache that the request has been handled and it can finish off quickly, similar to how it handles errors. [Rob Hartill]
  • Turn off chunked encoding after sending terminating chunk/footer so that we can't do it twice by accident. [Roy Fielding]
  • mod_expire also issues Cache-Control: max-age headers. [Rob Hartill]
  • API: Added kill_only_once option for free_proc_chain so that it won't aggressively try to kill off specific children. For fastcgi. [Stanley Gambarin ]
  • mod_auth deals with extra ':' delimited fields. [Marc Slemko]
  • Added IconHeight and IconWidth to mod_dir's IndexOptions directive. When used together, these cause mod_dir to emit HEIGHT and WIDTH attributes in the FancyIndexing IMG tags. [Ken Coar]
  • PORT: Sequent and SONY NEWS-OS support added. [Jim Jagielski]
  • PORT: Added Windows NT support [Ben Laurie and Ambarish Malpani ]