CL-HTTP

{{Infobox software

| name = CL-HTTP

| logo =

| screenshot =

| caption =

| author = John C. Mallery

| programming language = Common Lisp

| released = {{Start date and age|1994}}

| latest_release_version =

| latest_release_date =

| operating_system = Cross-platform

| genre = Web Server

| license = Proprietary

| website = {{URL|http://cl-http.org:8000/}}{{dead link|date=December 2019}}

}}

CL-HTTP is a web server, client and proxy written in Common Lisp. It is based on its own web application framework. It was written by John C. Mallery "in about 10 days"{{cite web|url=http://www.cl-http.org:8000/cl-http/history.html|title=CL-HTTP History|access-date=2014-05-22|archive-url=https://archive.today/20140522180026/http://www.cl-http.org:8000/cl-http/history.html|archive-date=2014-05-22|url-status=dead}} starting in 1994 on a Symbolics Lisp Machine. In the same year a port to Macintosh Common Lisp was done. In 1996 CL-HTTP became the first web server to support the HTTP 1.1 protocol.{{cite web|url=http://markmail.org/thread/ot3pjys3t5z5u2rm|title=ANNOUNCE: Common Lisp Web Server (60.57)}} It runs on Unix, Linux, BSD variants, Mac OS X, Solaris, Symbolics Genera and Microsoft Windows.

CL-HTTP makes extensive use of the Common Lisp Object System and the macro capabilities of Lisp.{{cite conference | title = A Common LISP Hypermedia Server | first = John C. | last = Mallery | conference = Proceedings of the First International Conference on the World-Wide Web | location = Geneva | publisher = CERN | date = May 25, 1994 }}

Usage

CL-HTTP has been used in several applications. ELM-ART is a tutoring system written in Common Lisp using CL-HTTP.{{cite book | chapter = ELM-ART: An intelligent tutoring system on world wide web | first1 = Peter | title = Intelligent Tutoring Systems | last1 = Brusilovsky | first2 = Elmar | last2 = Schwarz | first3 = Gerhard | last3 = Weber | series = Lecture Notes in Computer Science | date = 1996 | volume = 1086/1996 | pages = 261–269 | doi = 10.1007/3-540-61327-7_123 | publisher = Springer | isbn = 978-3-540-61327-5 }}

It was later commercialized as NetCoach.{{cite book | title = Developing Adaptive Internet Based Courses with the Authoring System NetCoach | first1 = Gerhard | last1 = Weber | first2 = Hans-Christian | last2 = Kuhl | first3 = Stephan | last3 = Weibelzahl | series = Lecture Notes in Computer Science | date = 2002 | volume = 2266/2002 }}

InterBook is an early adaptive electronic textbook, also written on top of CL-HTTP.{{cite conference | title = A Tool for Developing Adaptive Electronic Textbooks on WWW | last1 = Brusilovsky | first1 = Peter | last2 = Schwarz | first2 = Elmar | last3 = Weber | first3 = Gerhard | conference = WebNet 96 Conference Proceedings | location = San Francisco, CA | date = October 15–19, 1996 }}

Cl-HTTP has been used very early as a tool to create web interfaces for applications.{{cite journal | title = Patching onto the Web: Common LISP hypermedia for the intranet | first1 = Byron | last1 = Davies | first2 = Victoria Bryan | last2 = Davies | journal = Communications of the ACM | volume = 40 | issue = 5 | pages = 66–69 | date = May 1997 | doi = 10.1145/253769.253794 | s2cid = 18764239 | doi-access = free }}{{cite conference | title = An HTTP Interface to Common Music | first1 = Heinrich | last1 = Taube | first2 = Tobias | last2 = Kunze | journal = International Computer Music Conference | date = 1997 | doi = 10.2307/3681213 | jstor = 3681213 }}{{cite journal | title = An HTML Interface for Classic | first1 = Christopher A. | last1 = Welty | journal = Proceedings of the 1996 Description Logic Workshop (DL'96) | volume = WS-96-05 in AAAI Technical Report | publisher = AAAI Press }}{{cite conference | title = An interactive DSP tutorial on the Web | last1 = Rahkila | first1 = M. | last2 = Karjalainen | first2 = M. | publisher = Lab. of Acoust. & Audio Signal Process., Helsinki Univ. of Technol. | location = Espoo | conference = IEEE International Conference on Acoustics, Speech, and Signal Processing | date = 1997 | volume = ICASSP-97 | citeseerx = 10.1.1.130.8585 }}

In 1994, CL-HTTP was used by the W3C and other members of the IETF HTTP working group to develop reference clients and servers for HTTP 1.1.{{cite web|url=http://www.cl-http.org:8000/cl-http/history.html|title=CL-HTTP History|access-date=2014-05-22|archive-url=https://archive.today/20140522180026/http://www.cl-http.org:8000/cl-http/history.html|archive-date=2014-05-22|url-status=dead}}

Most prominently, CL-HTTP was used during the presidency of Bill Clinton as the web server for the White House Publications web site. It distributed the daily press releases and official publications of the Clinton Administration.{{cite web | title = CL-HTTP was fielded in 1994 to serve the White House Publications System | url = http://kutz60.kutz.brandeis.edu/cl-http/history.html | access-date = 2012-08-06 | archive-url = https://web.archive.org/web/20140517123404/http://kutz60.kutz.brandeis.edu/cl-http/history.html | archive-date = 2014-05-17 | url-status = dead }}

CL-HTTP has been used as an example of a non-trivial Lisp application.{{cite conference | title = How Lisp Systems Look Different | last1 = Dozsa | first1 = A. | last2 = Gtrba | first2 = T. | last3 = Marinescu | first3 = R. | publisher = Politeh. Univ. of Timișoara | location = Timișoara | conference = 12th European Conference on Software Maintenance and Reengineering | date = 2008 | volume = CSMR 2008 | pages = 223–232 | doi = 10.1109/CSMR.2008.4493317 | isbn = 978-1-4244-2157-2 | s2cid = 6368390 }}

Features

  • Object-oriented architecture using the Common Lisp Object System
  • SSL support
  • Server
  • Handling of static files
  • Computed content, Computed forms
  • HTML generation with Lisp macros
  • Virtual servers
  • Web page access authentication
  • Custom logging
  • Server-side includes
  • Caching Proxy
  • Client

References

{{reflist}}