:- module(http).
:- reexport http_client.
:- reexport http_server.
:- comment(summary, "HTTP library").
:- comment(author, "Ph. Bonnet, S. Bressan and M. Meier, ECRC Munich").
:- comment(copyright, "Cisco Systems, Inc").
:- comment(date, "$Date: 2006/09/23 01:55:19 $").
:- comment(desc, html("\n    The HTTP library contains an extensible server and a client for the\n    Hyper Text Transfer Protocol.  The library is entirely written in ECLiPSe. \n    <P>\n    Typical use of the client is for building WWW \"Worms\", WWW\n    \"Robots\" or customized WWW browsers.  Typical use of the server is\n    for building customized servers, e.g.  dynamic generation of HTML\n    pages.  The server and the client can typically be used together\n    to build proxy servers. \n    <P>\n    Limitations and Bugs: \n    <UL>\n    <LI> The current version of the server is sequential. \n    <LI> The MIME and HTTP grammar is not complete and may fail\n\tparsing some sentences generated by existing browsers and servers. \n    </UL>\n    The library consists of two sub-modules, http_client and http_server,\n    which can also be loaded separately.\n    <P>\n    The structure of the HTTP messages is precisely described in the\n    specification document (http://www.w3.org/pub/WWW/Protocols/).  An\n    augmented BNF is provided for each component of the header.  We\n    have used the DCG (Definite Clause Grammar) mechanism of ECLiPSe\n    to encode the grammar, that we use for both parsing (from HTTP\n    messages into Prolog terms) and pretty printing (from prolog terms\n    into HTTP messages). \n    <P>\n    This DCG grammar may have to be modified with the evolutions of\n    the HTTP protocol (standard modification and available client or\n    server implementations). \n    ")).
