1 Introduction
The HTTP (HyperText Transfer Protocol) is the W3C standard protocol for transferring information between a web-client (e.g., a browser) and a web-server. The protocol is a simple envelope protocol where standard name/value pairs in the header are used to split the stream into messages and communicate about the connection-status. Many languages have client and or server libraries to deal with the HTTP protocol, making it a suitable candidate for general purpose client-server applications.
In this document we describe a modular infra-structure to access web-servers from SWI-Prolog and turn Prolog into a web-server.
Acknowledgements
This work has been carried out under the following projects: [GARP]http://hcs.science.uva.nl/projects/GARP/, [MIA]http://www.ins.cwi.nl/projects/MIA/, [IBROW]http://hcs.science.uva.nl/projects/ibrow/home.html, [KITS]http://kits.edte.utwente.nl/ and [MultiMediaN]http://e-culture.multimedian.nl/ The following people have pioneered parts of this library and contributed with bug-report and suggestions for improvements: Anjo Anjewierden, Bert Bredeweg, Wouter Jansweijer, Bob Wielinga, Jacco van Ossenbruggen, Michiel Hildebrandt, Matt Lilley and Keri Harris.