[Prev][Next][Index][Thread]

A Thought on CGI & CL-HTTP



Most applications of CGI scripts in conventional WWW applications are
light weight.  They are fired up and go away on each invocation.
Thus, the main event is an HTTP server doing various little tasks as
requests come in.

When I think about how we use CL-HTTP, the situation is reversed.
A lisp program of 40K or 100k+ lines uses a small CL-HTTP application
to interface to the web. One definitely does not want to reload and restart
lisp applications of these size for each request!

In AI, many of us find ourselves with large, sophisticated programs that
maintain
even larger amounts of state, and so, CL-HTTP provides a natural interface
to the Web.

Of course, just because CL-HTTP is good for interfacing big, complex
programs to the Web
doesn't preclude using it for small programs. In fact, it is rather quick
and easy to
write quite sophisticated light weight response functions -- as CGI's
functionality is
described in a Lisp framework.

Beyond escaping the prison of conventional CGIs, a key feature of CL-HTTP
is that
the Lisp programmer has access to the entire server, and can customize or
extend it as desired for any application.  On Lisp Machines, this
arrangement extends throughout the operating system. On conventional
architectures, the foreign function interface becomes important when
there is a need to reach beyond the lisp environment.

Additionally, the source code provides a reference implementation for HTTP that
is readily accessible to the Lisp programmer.

So, the bottom line is that CL-HTTP is out there to help people explore the
space
of more sophisticated Web applications that may include elements of
Artificial Intelligence.

One of the more important areas to explore is turning the Web into
a worldwide knowledge representation.