CL-HTTP

Last updated
CL-HTTP
Original author(s) John C. Mallery
Initial release1994;29 years ago (1994)
Written in Common Lisp
Operating system Cross-platform
Type Web Server
License Proprietary
Website cl-http.org:8000 [ dead link ]

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" [1] 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. [2] It runs on Unix, Linux, BSD variants, Mac OS X, Solaris, Symbolics Genera and Microsoft Windows.

Contents

CL-HTTP makes extensive use of the Common Lisp Object System and the macro capabilities of Lisp. [3]

Usage

CL-HTTP has been used in several applications. ELM-ART is a tutoring system written in Common Lisp using CL-HTTP. [4] It was later commercialized as NetCoach. [5] InterBook is an early adaptive electronic textbook, also written on top of CL-HTTP. [6] Cl-HTTP has been used very early as a tool to create web interfaces for applications. [7] [8] [9] [10]

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. [11]

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. [12]

CL-HTTP has been used as an example of a non-trivial Lisp application. [13]

Features

Related Research Articles

<span class="mw-page-title-main">Common Lisp</span> ANSI-standardized dialect of Lisp

Common Lisp (CL) is a dialect of the Lisp programming language, published in ANSI standard document ANSI INCITS 226-1994 (S20018). The Common Lisp HyperSpec, a hyperlinked HTML version, has been derived from the ANSI Common Lisp standard.

<span class="mw-page-title-main">Transclusion</span> Including one data set inside another automatically

In computer science, transclusion is the inclusion of part or all of an electronic document into one or more other documents by reference via hypertext. Transclusion is usually performed when the referencing document is displayed, and is normally automatic and transparent to the end user. The result of transclusion is a single integrated document made of parts assembled dynamically from separate sources, possibly stored on different computers in disparate places.

In software engineering, multitier architecture is a client–server architecture in which presentation, application processing and data management functions are physically separated. The most widespread use of multitier architecture is the three-tier architecture.

In computer science, an object can be a variable, a data structure, a function, or a method. As regions of memory, they contain value and are referenced by identifiers.

Hypermedia, an extension of the term hypertext, is a nonlinear medium of information that includes graphics, audio, video, plain text and hyperlinks. This designation contrasts with the broader term multimedia, which may include non-interactive linear presentations as well as hypermedia. It is also related to the field of electronic literature. The term was first used in a 1965 article written by Ted Nelson.

SuperCollider is an environment and programming language originally released in 1996 by James McCartney for real-time audio synthesis and algorithmic composition.

CLiki is an open source wiki application written in Common Lisp, that was under development from 2002 to 2005.

Representational state transfer (REST) is a software architectural style that describes the architecture of the Web. It was derived from the following constraints:

Tuxedo is a middleware platform used to manage distributed transaction processing in distributed computing environments. Tuxedo is a transaction processing system or transaction-oriented middleware, or enterprise application server for a variety of systems and programming languages. Developed by AT&T in the 1980s, it became a software product of Oracle Corporation in 2008 when they acquired BEA Systems. Tuxedo is now part of the Oracle Fusion Middleware.

Flavors, an early object-oriented extension to Lisp developed by Howard Cannon at the MIT Artificial Intelligence Laboratory for the Lisp machine and its programming language Lisp Machine Lisp, was the first programming language to include mixins. Symbolics used it for its Lisp machines, and eventually developed it into New Flavors; both the original and new Flavors were message passing OO models. It was hugely influential in the development of the Common Lisp Object System (CLOS).

<span class="mw-page-title-main">Reverse proxy</span> Type of proxy server

In computer networks, a reverse proxy is an application that sits in front of back-end applications and forwards client requests to those applications. Reverse proxies help increase scalability, performance, resilience and security. The resources returned to the client appear as if they originated from the web server itself.

<span class="mw-page-title-main">Dynamic web page</span> Type of web page

A server-side dynamic web page is a web page whose construction is controlled by an application server processing server-side scripts. In server-side scripting, parameters determine how the assembly of every new web page proceeds, and including the setting up of more client-side processing.

The Simple Common Gateway Interface (SCGI) is a protocol for applications to interface with HTTP servers, as an alternative to the CGI protocol. It is similar to FastCGI but is designed to be easier to parse. Unlike CGI, it permits a long-running service process to continue serving requests, thus avoiding delays in responding to requests due to setup overhead.

Adaptive hypermedia (AH) uses hypermedia which is adaptive according to a user model. In contrast to linear media, where all users are offered a standard series of hyperlinks, adaptive hypermedia (AH) tailors what the user is offered based on a model of the user's goals, preferences and knowledge, thus providing links or content most appropriate to the current user.

CLX is the standard X Window System client library for Common Lisp, equivalent to the Xlib library for the C programming language. CLX is written solely in Common Lisp; it does not use Xlib.

mod_lisp is an extension module for the Apache HTTP Server. It enables Apache to interface with application servers written in Common Lisp, making it possible to dynamically generate web pages and provide web applications with Common Lisp programs.

Hypermedia as the Engine of Application State (HATEOAS) is a constraint of the REST application architecture that distinguishes it from other network application architectures.

<span class="mw-page-title-main">API</span> Software interface between computers and/or programs

An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build or use such a connection or interface is called an API specification. A computer system that meets this standard is said to implement or expose an API. The term API may refer either to the specification or to the implementation.

FastCGI is a binary protocol for interfacing interactive programs with a web server. It is a variation on the earlier Common Gateway Interface (CGI). FastCGI's main aim is to reduce the overhead related to interfacing between web server and CGI programs, allowing a server to handle more web page requests per unit of time.

Peter Brusilovsky is a professor of information science and intelligent systems at the University of Pittsburgh. He is known as one of the pioneers of adaptive hypermedia, adaptive web design, and web-based adaptive learning. He has published numerous articles in user modeling, personalization, educational technology, intelligent tutoring systems, and information access. As of February 2015 Brusilovsky was ranked as #1 in the world in the area of computer education and #21 in the world in the area of World Wide Web by Microsoft Academic Search. According to Google Scholar as of April 2018, he has over 33,000 citations and h-index of 77. Brusilovsky's group has been awarded best paper awards at Adaptive Hypermedia, User Modeling, Hypertext, IUI, ICALT, and EC-TEL conference series, including five James Chen Best Student paper awards.

References

  1. "CL-HTTP History". Archived from the original on 2014-05-22. Retrieved 2014-05-22.
  2. "ANNOUNCE: Common Lisp Web Server (60.57)".
  3. Mallery, John C. (May 25, 1994). A Common LISP Hypermedia Server. Proceedings of the First International Conference on the World-Wide Web. Geneva: CERN.
  4. Brusilovsky, Peter; Schwarz, Elmar; Weber, Gerhard (1996). "ELM-ART: An intelligent tutoring system on world wide web". Intelligent Tutoring Systems. Lecture Notes in Computer Science. Vol. 1086/1996. Springer. pp. 261–269. doi:10.1007/3-540-61327-7_123. ISBN   978-3-540-61327-5.
  5. Weber, Gerhard; Kuhl, Hans-Christian; Weibelzahl, Stephan (2002). Developing Adaptive Internet Based Courses with the Authoring System NetCoach. Lecture Notes in Computer Science. Vol. 2266/2002.
  6. Brusilovsky, Peter; Schwarz, Elmar; Weber, Gerhard (October 15–19, 1996). A Tool for Developing Adaptive Electronic Textbooks on WWW. WebNet 96 Conference Proceedings. San Francisco, CA.
  7. Davies, Byron; Davies, Victoria Bryan (May 1997). "Patching onto the Web: Common LISP hypermedia for the intranet". Communications of the ACM. 40 (5): 66–69. doi: 10.1145/253769.253794 . S2CID   18764239.
  8. Taube, Heinrich; Kunze, Tobias (1997). An HTTP Interface to Common Music. International Computer Music Conference. doi:10.2307/3681213. JSTOR   3681213.
  9. Welty, Christopher A. "An HTML Interface for Classic". Proceedings of the 1996 Description Logic Workshop (DL'96). AAAI Press. WS-96-05 in AAAI Technical Report.
  10. Rahkila, M.; Karjalainen, M. (1997). An interactive DSP tutorial on the Web. IEEE International Conference on Acoustics, Speech, and Signal Processing. Vol. ICASSP-97. Espoo: Lab. of Acoust. & Audio Signal Process., Helsinki Univ. of Technol. CiteSeerX   10.1.1.130.8585 .
  11. "CL-HTTP History". Archived from the original on 2014-05-22. Retrieved 2014-05-22.
  12. "CL-HTTP was fielded in 1994 to serve the White House Publications System". Archived from the original on 2014-05-17. Retrieved 2012-08-06.
  13. Dozsa, A.; Gtrba, T.; Marinescu, R. (2008). How Lisp Systems Look Different. 12th European Conference on Software Maintenance and Reengineering. Vol. CSMR 2008. Timișoara: Politeh. Univ. of Timișoara. pp. 223–232. doi:10.1109/CSMR.2008.4493317. ISBN   978-1-4244-2157-2. S2CID   6368390.