CL-HTTP Welcome to The Common Lisp Hypermedia Server


  1. Quick Start
  2. Current Release
  3. Server Features
  4. Documentation
  5. Reference Manuals
  6. Common Lisp Source Code
  7. User Discussion Group
  8. Bug Reports
  9. Acknowledgments

This is the CL-HTTP Suite of Common Lisp Components for the World Wide Web, including the Common Lisp Hypermedia Server.These were primarily developed by by John C. Mallery (jcma@nospam.csail.mit.edu) of the M.I.T. Computer Science & Artificial Intelligence Laboratory with contributions from members of the Lisp community.


Major Features

Meta-Object Protocol Some important things about this server:
HTTP 1.1 Compliant Server, Caching Proxy, SSL Proxy, Reverse Proxy, advanced Web Walker, programmatic Client, and many tools for Web development.
Computed URLs written in Lisp supersede conventional CGI scripts and provide more power than Java Servlets.
HTML Synthesis for XHTML 1.0, HTML 4.0 & with backward compatibility to earlier HTML standards with generation tools.
Secure Sockets Layer (SSL) support for server, client, proxy and Web walker on LispWorks and Scieneer Common Lisp.
SSL X.509 client certificate support for server, client & Web walker.
Access Control via subnets, passwords (Basic & Digest Authentication) & X.509 certificates.
Presentation-based Interfaces with W3P.
Site Indexing & Information Retrieval with LambdaVista
Mobile code emission for client-side JavaScript, Java, or plug-ins.
Email HyperArchive.
Modular & extensible logging.
Web-based configuration of the server & user access control.
Multi-threaded and dynamically linked.
Multiple Virtual Hosts on the same IP address.
Extensible, modular, object-oriented architecture based on CLOS meta-object protocol.
Advanced condition handling architecture.
Toolkit of Web abstractions.
Clean abstractions facilitate security audits.
Working examples in an example Web site to get you started quickly.
Self-documenting.
Rapid prototyping & customization for research, product or protocol development.
Used in top research laboratories around the world.
Disconnected operation on laptops, such as Apple PowerBooks.
Proven in major production systems.
Source compatible over major hardware, operating-system and Lisp platforms.
Complete source code (portable & platform-specific).
Freely distributed since 1994.
Royalty-free, production-quality, cross-platform application delivery on LispWorks with commercial support availability.

Obtaining the Current Release

The Current Version can be retrieved from the CL-HTTP Home Page, which centralizes information about this Web server and related Common Lisp WWW tools.


Common Lisp Platforms

The server has been ported to a number of Common Lisp implementations running on a variety of computer hardware.


Documentation

The Common Lisp Hypermedia Server (CL-HTTP) is here for you to rapidly prototype and smoothly evolve novel or complex applications for the World Wide Web. After reading the WWW-94 conference paper , the first documentation items below should be enough to get you up and running.

Browsing the Documentation: Watch out for URLs on the local host that compute their output in some interesting way. When operating in standalone mode or over a network not connected to the internet, you can still follow all the documentation and source code that comes with the server. In both cases, you may wish to set your browser so that you can see the URL under the mouse, and especially, the host that serves it.

Questions: If you have any questions, send mail to WWW-CL@CSAIL.MIT.EDU.

Configuration Instructions explains how to start up World Wide Web service on specific Lisp platforms.

Web-based server configuration is available after loading and starting the server successfully.

Release Notes describe new features and issues for specific platforms

Server Features illustrates various things you can do with CL-HTTP using live examples which you can copy and edit for your own applications. You can brighten up your pages with some basic icons.

Documentation for exporting documents and for using image maps.

Computing Responses explains the how to write response functions and accept user input with fill-out forms.

W3P Presentation System explains how to use presentation types with HTML forms.

Authentication explains the how to control access to resources with user names and passwords as well as secure subnets.

Proxy Service explains how to configure the server for HTTP proxy service.

VRML Generation explains the how to generate 3D scenes under program control with the Virtual Reality Modeling Language.

HTML Parser explains how to parse HTML using tools distributed with CL-HTTP.

Site Indexing & Information Retrieval explains the how to use LambdaVista -- a hybrid classification and retrieval system that indexes your Web site, including email HyperArchives, and supports full-text retrieval.

Development Projects describe useful additions to CL-HTTP that volunteers might want to work on.

Guidelines and Hints on writing well-abstracted yet efficient code for CL-HTTP.

Internet Standards for the World Wide Web.

Developer Tools enumerates some tools that may be useful to cl-http developers.

Extending the Server explains some ways to customize the server for new behaviors.

Brief History recounts the origins of this server and some early applications.

Reference Materials indexes a valuable range of technical documentation and software repositories relevant for WWW and Lisp development.

Acknowledgments credits the people who helped out.

Reference Manuals

Reference documentation is dynamically available for all major components of CL-HTTP. The Find Documenation facility is a powerful tool for obtaining specific documenation about practically every class, method, function, macro, and variable in the systems.

  1. HTML 3.2 Synthesis Tools are used to generate HTML for dynamic or static uses.
  2. Netscape 4.0 HTML Synthesis Tools are available for extensions to HTML and mobile code emission.
  3. HTTP Operators and Variables govern the operation of the server.
  4. URL Operators and Variables control parsing and representation of uniform resource locators.
  5. VRML 1.0 Synthesis Tools generate 3D VRML scenes.
  6. W3P Presentation Operators present data and accept input from users.
  7. Utilities support the other modules.


Common Lisp Source Code

In the table below, each logical pathname is hyperlinked to the directory for each component.

PortableLocation
Exampleshttp:examples;
Serverhttp:server;
W3P Presentation Systemhttp:w3p;
Proxy Servicehttp:proxy;
Basic Clienthttp:client;
LambdaVista Search Toolhttp:lambda-ir;
W4 Web Walkerhttp:w4;
HTML Parserhttp:html-parser;
Email HyperArchivehttp:examples;mail-archive.lisp
CLIM Interfaceshttp:clim;
SMTP Mail http:smtp;
FTP Client http:ftp;
Platform-SpecificLocation
Allegrohttp:acl;obc;
Allegro 5.0.1http:acl;jkf;
CMU CLhttp:cmucl;
LispWorkshttp:lw;
Lucidhttp:lcl;
Macintoshhttp:mcl;
Scieneer CLhttp:scl;
Symbolicshttp:lispm;
User-ContributedLocation
Portablehttp:contrib
Allegrohttp:acl;contrib;
LispWorkshttp:lw;contrib;
MCLhttp:mcl;contrib;
SCLhttp:scl;contrib;


User Discussion Group

Learn about new releases, usage, and applications of CL-HTTP as well as general WWW programming with Common Lisp on www-cl@csail.mit.edu. Note that you must join the discussion group before sending mail to it, or the listserve will ignore your mail. Although a little inconvenient, this listserve configuration prevents rampant spam mail from reaching your inbox and the archives.


Bug Reports

When reporting bugs, it is essential that you explain how to reproduce the problem, provide a backtrace when relevant, and include the server version, the Common Lisp version, operating system version, and hardware configuration.

If possible, use the sources to fix the problem and send the fix along with the report.

Report bugs associated with specific ports should go to one of the specialized mailing lists:

Allegro Common Lisp:Bug-ACL-CL-HTTP@nospam.cl-http.org
LispWorks Common Lisp:Bug-LW-CL-HTTP@nospam.cl-http.org
Lucid Common Lisp:Bug-LCL-CL-HTTP@nospam.cl-http.org
Macintosh Common Lisp:Bug-MCL-CL-HTTP@nospam.cl-http.org
Symbolics Common Lisp:Bug-CL-HTTP@nospam.cl-http.org
CMU Common Lisp:Bug-CMUCL-CL-HTTP@nospam.cl-http.org
Scieneer Common Lisp:Bug-SCL-CL-HTTP@nospam.cl-http.org

Common source or platform independent bugs or issues should be reported to Bug-CL-HTTP@nospam.cl-http.org.

Bugs or questions concerning the Constraint Guided Web Walker should be sent to bug-w4@nospam.cl-http.org.


John C. Mallery -- jcma@nospam.csail.mit.edu
M.I.T. Computer Science & Artificial Intelligence Laboratory