[Prev][Next][Index][Thread]
CL-HTTP Release 44.2 Now Available for FTP
CL-HTTP 44.2 (MAC 1.7.1, ACL 0.7.2, LW 0.3.1)
CL-HTTP version 44.2 is now available from the home page and FTP site.
http://www.ai.mit.edu/projects/iiip/doc/cl-http/home-page.html
ftp://ftp.ai.mit.edu/pub/users/jcma/cl-http/
The current release is available for:
* MAC running under MCL 3.0 (and MCL 2.0.1 with the usual caveats).
* Lisp Machine under Symbolics Genera 8.3 (also Open Genera 1.0)
* UNIX
o Allegro Common Lisp 4.2 (Second Alphatest Release).
Please report bugs, problems, or suggestions to
bug-acl-cl-http@ai.mit.edu
o LispWorks Common Lisp 3.2.2 (First Alphatest Release).
Please report bugs, problems, or suggestions to
bug-lw-cl-http@ai.mit.edu
The new release includes a number of fixes, performance enhancements,
extensions, and some new documentation.
We want to hear what people are doing or would like to do with CL-HTTP
so that we can better understand the needs of the user community.
A revised and more comprehensive outline of code projects is available in
/cl-http/projects.html. Discussion on www-cl@ai.mit.edu is encouraged help
steer server development according to the wishes of the user community.
The significant features include:
* Access Control on URLs via passwords is now available.
Interfaces can now correctly supply the authenticated user and
the authentication method. /cl-http/authentication/
* *AUTO-EXPORT* is now set to :ON-DEMAND by default. This
defers export of pathnames under directory URLs until they are
requested, and makes the server start up faster even in an
environment of slow or non-caching DNS resolvers.
* Custom logging is possible using multiple log objects are
possible and form values are cached on the server object.
* Server Interface 1.0 provides a defined interface for writing
response functions. This is an interface specification inspired by CGI
but more attuned to the needs of Lisp.
* Common Gateway Interface 1.1 provides the information needed for
scripting interfaces on the MAC (e.g., AppleScript, Perl) and UNIX,
but this standard is not very useful for the Lisp programmer.
* Documentation on writing response functions explains all the
interfaces needed to write response functions for computed URLS, form
processing and search urls. See: /cl-http/response-functions.html
* Documentation enumerating a number of heuristics for how to make
your lisp code for CL-HTTP response functions run fast. Suggestions,
refinements, and prioritizations are a relevant topic for discussion
on www-cl. See:/cl-http/efficiency.html
* A bug that could produce a 304 loop with Netscape has been fixed.
But, Netscape 1.1 has further bugs with daylight savings time. Clearing
the cache and quitting Netscape can help in many cases.
* Bugs related to operation on ports other than 80 or multiple ports
have been fixed. The function http:set-standard-http-port can now be
used to set the standard port on which the server will listen. This
must be invoked after http:reset-server-local-host-variables in your
server configuration file (see the examples in
http:examples;configuration.lisp).
* The #U reader macro now uses the standard port when completing
relative URLs. The #U reader macro now accepts an alternate syntax of
the form: #U("/cl-http/response-functions.html" :host
"Host.Domain":port 8000), where host and port would default to the
values of local-host and the standard port.
* The Mailto and File URLs are now parsed by the URL package.
* The Web related standards have been updated in http:standards;
* Portability enhancements will make additional ports smoother.
* Lazy header parsing improves the response time for the server.
* Several classes of AppleTalk errors are now detected on the MAC and
more meaningful error reports provided.
* A number of network conditions have been exported for use in
the http package (not yet available in the ACL port). These
include:
BAD-CONNECTION-STATE
CONNECTION-CLOSED
CONNECTION-ERROR
CONNECTION-LOST
CONNECTION-REFUSED
DOMAIN-RESOLVER-ERROR
HOST-NOT-RESPONDING
HOST-STOPPED-RESPONDING
LOCAL-NETWORK-ERROR
NETWORK-ERROR
NETWORK-PARSE-ERROR
NETWORK-RESOURCES-EXHAUSTED
PROTOCOL-TIMEOUT
REMOTE-NETWORK-ERROR
UNKNOWN-ADDRESS
UNKNOWN-HOST-NAME
Buggy HTTP Servers: A number of HTTP servers on the net implement
unreliable TCP closes, which adversely effects the Lisp Machine and MAC
versions of the basic client as well as proxy servers. The symptom is
that URL data is incompletely transfered to the client because a number
of HTTP servers close the connection in abort mode and thus issue a TCP
reset to the client. Conforming TCP implementation assume a more
graceful end to a transaction, and so, both the Lisp Machine and the MAC
TCP implementations flush the input buffer when they receive the tcp
reset. If the client has not already completed reading the input
buffer, a tcp-connection-reset error is signalled when the client next
tries to read from the TCP input buffer. The next version of the HTTP
specification contains a note advising implementors of these buggy
servers to correct their problem.