Library 4.1 Release Notes
If you are reading the text version of this document then you can find a
HTML version in
Library/User/ReleaseNotes.html
The focus for version 4.1 of the W3C Reference Library
is to provide a set of higher level, application specific APIs for accessing
the Web. These APIs - called profiles
- will help the application, a Web client for example, to more easily use
the full potential of the application independent
Library core. Also, the Library contains
a significantly better interface for easy access to the Web through a
large set of functions specialized to
perform certain Web operations like PUT
, POST
,
DELETE
, GET
and HEAD
.
Check out the latest
list of public functions
Release 4.1b3 July 20 1996
This release contains a TCL add-on to the Robot
example application and a Deja GNU Test suite
for the Library. Also, it support HTTP/1.1
including persistent connections, two-way PUT
, and the
host
header. There is also a sample PEP
implementation, that although incomplete can give an idea of where we're
headed using PEP.
The file access module now does content
negotiation by default. This means that all local file access (including
from client applications) do content negotiation when accessing local
files. Content negotiation can be turned off by setting a flag in the
request object.
A main difference in beta 3 is that we now have a set of
"application profiles" that helps the
application to initialize libwww core to
work as a typical client, robot or other type of application. This should
replace the huge initialization procedure seen in previous versions. This
is in fact a result of the core being so flexible - it is inly a framework
for accessing the Web. The application must initialize all the functionality
at run-time. You can see the various profile functions in the
WWWInit interface.
The second main difference is that the BEFORE and AFTER filters
have been more explicit than before. The HTLoadStart
and
HTLoadTerminate
functions actually covered many typical
BEFORE and AFTER filter functions like looking for proxies,
searching the cache, looking for rule file matching, and logging etc.
However, two functions were not covered by this: redirection and
authentication. That is why the application in previous version had
to supply this functionality. However, in beta 3 we have split up the
HTLoadStart
and HTLoadTerminte
functions into a
set of filters which each perform only
a single function, for example looking for proxies. The split has two functions:
first it shows how you can use filtes to add new functionality to the Library
and second it can be used by more types of applications. A result of the
new filters is that we also have default redirection and authentication filters
so you don't have to provide this anymore.
The filters are set up as part of the
profiles so you will normally not have
to register them individually.
New features and Changes
-
Introduced HTUserprofile class to handle
host and user specific information
-
Added Chunked decoding and encoding module
-
A host name is not expanded to a fqdn name as it is not reliable enough.
Now we just keep it as is, that is we don't expand www to
www.w3.org, for example.
-
Updated HTML parser to support
BASE
tag and LINK
tag
-
Added new access methods to the HTAccess
module. It is now part of the WWWApp
interface
-
Updated the Icon module and added icons
to the distribution file
-
Added a Stream to Chunk converter for
easier conversion of streams into dynamic memory buffers
-
Introduced HTLib as a new core module. It
contains generic information about the core which used to be in the HTAccess
module.
-
Added support for HTTP/1.1. Most of the HTTP/1.1
specification is now in place, we still need some headers and some features
but this version can be considered to be compliant.
-
Added suport for proxy authentication as specified by HTTP/1.1
-
Added support for case-insensitive searching for proxies via environment
variables
-
Changed handling of proxies so that they are not included in the URL but
is now instead part of the request object. This allows for better handling
of proxies and also for more freely use of the proxy filter as it doesn't
affect the other filters anymore.
Bug Fixes
-
Fixed problem with uploading directory listing using chunked encoding
-
Fixed problem in the rule file parser. It didn't parse the last line of the
config file
-
Fixed autoconf to handle WAIS and updated the
HTWAIS.c module
-
Fixed race problem in PUT on alphas which caused the PUT operation to hang
under certain circumstances
Release 4.1b1 May 20 1996
New Features
-
Introduced GNU autoconf configure script for compiling on Unix platforms
instead of the old BUILD script. This should make it a lot easier to compile
on Unix as we get all the advantages of GNU autoconf.
-
Introduction of the HTUserprofile Class which
keeps track of a "user" known to the Library
-
New access authentication interface allowing for dynamic registration of
new access authentication mechanisms. It provides an easy API for hooking
in new schemes.
-
Improved handling of trace messages which allows for easy redirection of
trace messages
-
Support for registration of content coders/decoders and content transfer
encoders/decoders. This is done the same way as for media types by registering
a set of streams that can handle the various encodings.
-
Support for chunked decoding
-
Introduction of the HTHost Class which keeps
track of information about remote hosts
-
The DNS Class has been simplified to handle
DNS queries only. All additional information about the remote host is defined
by the HThost Class.
-
We have a new HTEvent module which allows
for dynamic registration of an event manager. This will make it much easier
to use external event managers together with libwww. If you wish to continue
to use the event loop from HTEvntrg, you must register it explicitly with
HTEventrgInit. This call is demonstrated
in HTBrowse.
-
The HTStream module has been created
containing a set of basiv streams such as an error stream etc.
-
Introduction of the HTTransport Class.
This allows for dynamic registration of transport protocols such as for example
the W3Mux protocol, TCP access, local file access etc.
-
All MIME parsing is now done with registered parsers. The
HTMIME module only unwraps the MIME
header fields and calls the best parser. The header parsing origonally done
in HTMIME can be found in HTInit.c and is
registered with HTMIMEInit. This call is
demonstrated in HTBrowse.
Henrik Frystyk Nielsen, libwww@w3.org,
@(#) $Id: ReleaseNotes.html,v 1.35 1996/07/20 18:14:50 frystyk Exp $