CERN httpd 3.0pre3 available (Ari Luotonen)
Date: Thu, 5 May 1994 00:16:55 +0200
Message-id: <>
Precedence: bulk
From: (Ari Luotonen)
To: Multiple recipients of list <>
Subject: CERN httpd 3.0pre3 available
X-Listprocessor-Version: 6.0c -- ListProcessor by Anastasios Kotsikonas

			   *  *  *  *  *

  CERN httpd is a generic hypertext server which can be used as a
  regular HTTP server running typically on port 80 to serve hypertext
  and other documents, and also as a proxy -- a server on a firewall
  machine -- that provides access for people inside a firewall to the
  outside world.  When running as proxy httpd may be configured to
  do caching of documents resulting in faster response times.

			   *  *  *  *  *

CERN httpd 3.0pre3 is available, source code from:

This package includes EVERYTHING, so don't ftp the libwww.
Precompiled binaries are supplied for Sun4, Solaris, HP, NeXT,
NeXT-386, Decstation Ultrix and DEC OSF/1 under:

Precompiled binaries are in cern_httpd_3.0pre3.tar.Z, which also
includes a default set of icons (three new ones by Rainer Klute:
unknown has a ? in it, gzip is slimmer than compress, and doc looks
better now; thanks, Rainer!), and sample configuration files for
normal and proxy use, plus a template file containing all the
configuration directives understood by httpd (thanks to Sean Gonzalez
for it!).

For Sun4 there is also a cern_httpd_3.0pre3-lresolv.tar.Z which
contains an httpd linked with the -lresolv option.

Binaries for utility programs (htadm, htimage, cgiparse and cgiutils)
are in a separate tar packet: cern_httpd_utils_3.0pre3.tar.Z.

Compilation for other Unix platforms should not be very complicated.
I would be happy to receive diffs, if any, to make it compile for
other platforms.  Also binaries other than those already on are welcome.

VMS port is on its way!

Online docs:
PostScript [75 pages]:
FTP all HTML files:
FTP compressed PS file:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  CERN HTTPD 3.0 PRERELEASE NOTES 1-3

3.0 Prerelease 1
     * If-Modified-Since GET request now works correctly with proxy
       (client can do conditional GET/proxy can do conditional GET plus
       all the combinations of these).
     * Pragma: no-cache supported; by sending this header to the proxy
       the client will force it to refresh its cache from remote server.
       Pragma headers are also forwarded to the remote server.
     * Server now resets its state correctly when it receives the HUP
       signal (directory listing icons used to stop working).
     * -restart option - httpd will find out the actual server process
       number and send s HUP signal to it to make it reload its
       configuration files; note that httpd must still have the same
       configuration file command line parameters (-r options) as the
       actual server (so it finds out the ServerRoot and PidFile).
     * Now makes appropriate entry to error log when restarting.
     * Made common logfile format default, the old format can still be
       used with the LogFormat directive:
        LogFormat old
     * Multiple wild-card (asterisk) matching in configuration file
       works; it is a bit different from typical regular expression
       matching in that the wildcard matches the shortest possible
       amount of characters instead of the longest matching string; this
       is the best choise in most of the cases. Consider:
        Pass  http://*/*  /mirror/*/http/*
       Clearly the first asterisk should rather match only the hostname, and
       not the entire path except the filename.
     * Rules can now have asterisks and whitespace in them: precede them
       with a backslah; as a result also the backslash itself has to be
       escaped with another backslash.
     * The tilde character after a slash has to be explicitly matched:
        Map     /*      /foo/bar/*
       does not match user-supported directories, but:
        Map     /~*     /Webs/users/*
       does match them.
     * Fixed the problem that user-supported directories could not be
       mapped or Protect'ed.
     * Hostname matching made case-insensitive in access control/caching
     * Added suffixes .htm and .htmls to the default set of known
     * Fixed some of the mysterious caching problems (all that were
       reported to me and that I could reproduce).
     * Made it possible to specify the various byte/kilo/mega sizes in
       cache configuration with letters after the number (so it's no
       longer necessary to remember if the default is kilobytes or
        CacheSize       150 M
        CacheLimit_1    100 K
        CacheLimit_2    2 M
       The numbers still have to be cardinals.
     * Content-Length given for all documents, including
       (non-nph-)script responses, generated directory listings, error
       responses, all the documents retrieved over another protocol by
       the proxy (FTP, Gopher, ...), including HTTP responses from
       servers that didn't give it originally.
     * MaxContentLengthBuffer directive to specify the maximum bytecount
       for the proxy to buffer in order to find out the content-length
       for the client - content-length is always calculated for the
       logs, but the user migth interrupt the connection if nothing seems
       to be happening, even though it is the proxy that is just
       buffering the entire file in order to find out the content-length
       before actually sending it to the client.
     * Caching module now checks that it receives the correct
       content-length; if not it discards the cached document. This rules
       out the possibility to cache a truncated document from a timed out
       connection in 99.99% of the cases (0.01% comes from the fact that
       Plexus sends a timeout error message concatenated to the document
       and if so should happen that this produces exactly the correct
       content-length then there is nothing that can be done about it; in
       practice this never happens).
     * Made HEAD work always, even on proxy with other protocols (FTP,
     * PASV (Passive mode) in FTP now supported. It is no longer
       necessary to allow incoming connections above 1024 on the firewall
       host just to make FTP work. If PASV fails httpd will retry PORT.
     * Welcome messages from FTP servers get shown on top of the
       directory listings.
     * Fixed bug with old FTP files getting wrong date in the listing.
     * Gopher listings now have icons.
     * Proxy now reports unknown host errors appropriately.
     * Fixed encoding-decoding problems with directory listings.
     * Added ScriptTimeOut - scripts that do not finish in this amount of
       time will be killed by httpd. Default value is 5 minutes.
     * A /~username URL with an invalid username no longer causes an
       infinite redirection loop.
     * The two files missing in FTP listings are no longer missing (they
       weren't in 2.18beta, either).
     * Fixed a possible error condition that might cause the server to
       stop responding, or even die.
     * Server now resets its UserId and GroupId even when in gc-only mode
       (this solves problems with .cache_info files sometimes being
       unwritable to actual caching processes).
     * CacheAccessLog is now opened during startup while running as root
       to avoid opening problems. There is no longer logging to
       individual files according to remote hosts - all cache accesses
       are logged to this single file.
     * CacheOnly directive for specifying a set of URLs that should be
       cached (for cases when there are only a few sites that should be
     * Added DELETE-Script directive for specifying the CGI script to
       handle DELETE method.
     * NoProxy directive to allow the proxy to do direct access to some
       servers instead of connecting to another proxy server (contains a
       list of domain names). This works exactly like the no_proxy
       environment variable on clients. (Thanks to Rainer Klute for the
       patch!) This is only necessary when running multiple proxy servers
       that connect to each other.
     * Fixed a bug that sometimes caused time directives to be parsed
       incorrectly (e.g. CacheDefaultExpiry).
     * Multilanguage addition to allow server to understand e.g. that
       British English is also English, and that the US citizens do
       understand it (thanks to Toshihiro Takada for the patch!).
     * Removed:
          + GcReqInterval and GcTimeInterval - not very good criteria to
            start doing garbage collection (GcDailyGc is better, giving
            the actual time to lauch gc)
          + cache access logging to individual logfiles according to
            remote host (wasted resources - a separate program is better
            for collecting this information from a single log file).
          + -a and -R options (never used).
          + BodyTimeOut replaced by ScriptTimeOut
          + includes from Makefiles (not supported by all the makes).
          + #elif preprocessor directive removed (wasn't supported by all
            the HP preprocessors)

3.0 Prerelease 2
     * ~username form understood with ServerRoot, Search, PutScript,
       PostScript, DeleteScript, AccessLog, ErrorLog, CacheAccessLog
     * Opens cache access log only if caching is turned on.
     * Binary distribution now contains a template configuration file
       that has all the configuration directives understood by httpd
       (thanks to Sean Gonzalez for it!).

3.0 Prerelease 3

     * Unescaping bug fixed in news module (caused many articles to fail
       to be retrieved).
     * News module now gives appropriate error reponses for unavailable
       articles and non-existent news groups.
     * FTP and HTTP modules now give better error responses.
     * Fixed the cache access log to show the correct content-lengths.
     * GMT-to-localtime transformation works now on all platforms in
       caching (was broken on others than Sun).

 Ari Luotonen		  | Henrik Frystyk		| Mark Donszelmann  |	|
 + 41 22 767 8583	  | + 41 22 767 8265		| + 41 22 767 3555

-------- World-Wide Web Project, CERN, CH-1211 Geneve 23, Switzerland --------