Libwww Explained

libwww
Other Names:[CERN] Common [WWW] Library,[1]
CERN World-Wide Web Library of Common Code,[2]
W3C Reference Library,[3]
W3C Sample Code Library,[4]
W3C Protocol Library
Author:Tim Berners-Lee,
Jean-François Groff,[5]
Henrik Frystyk Nielsen
Developer:José Kahan
Released:1.0, [6]
Operating System:FreeBSD,[7] Solaris, Linux, Mac OS X, Microsoft Windows
Genre:Library for web browsers, servers, and other protocols
Programming Language:C
License:W3C Software Notice and License

Libwww is an early World Wide Web software library providing core functions for web browsers, implementing HTML, HTTP, and other technologies. Tim Berners-Lee, at the European Organization for Nuclear Research (CERN), released libwww (then also called the Common Library) in late 1992, comprising reusable code from the first browsers (WorldWideWeb and Line Mode Browser).

Libwww was relied upon by the then popular browser Mosaic. By 1997, interest in libwww declined, and the World Wide Web Consortium (W3C), which took over from CERN, reduced its commitment to the project. Later, the purpose of libwww was redefined to be "a testbed for protocol experiments"; in that role it was maintained for the benefit of the W3C's web standards-promoting browser Amaya. Active development of libwww stopped in 2000.[6]

History

In 1991 and 1992, Tim Berners-Lee and a student at CERN named Jean-François Groff rewrote various components of the original WorldWideWeb browser for the NeXTstep operating system in portable C code, in order to demonstrate the potential of the World Wide Web.[8] In the beginning, libwww was referred to as the Common Library and was not available as a separate product.[9] Before becoming generally available, libwww was integrated in the CERN program library (CERNLIB).[10] In July 1992 the library was ported to DECnet.[11] In the May 1993 World Wide Web Newsletter Berners-Lee announced that the Common Library was now called libwww and was licensed as public domain to encourage the development of web browsers.[12] He initially considered releasing the software under the GNU General Public License, rather than into the public domain, but decided against it due to concerns that large corporations such as IBM would be deterred from using it by the restrictions of the GPL.[8] [13] The rapid early development of the library caused Robert Cailliau problems when integrating it into his MacWWW browser.[14]

From February 1994 to July 1999 (versions 2.17 to 5.2.8), Henrik Frystyk Nielsen was responsible for libwww, first as a graduate student at CERN and later at the World Wide Web Consortium (W3C).[15] [16] [17] On 21 March 1995, with the release of version 3.0, CERN transferred responsibility for libwww to the W3C.[6] From 1995 onwards, the Line Mode Browser was no longer released separately, but part of the libwww package.[18]

On 2 March 1997, Nielsen announced that Libwww 5.1 was expected to be the last release.[19] Later that year, on 24 Dec 1997, Nielsen put out an unsuccessful call for another party outside W3C to take over maintenance of the library.[20]

Nielsen left the W3C in July 1999, and the project was thereafter headed by José Kahan as the only W3C employee involved with the project.[17] [21]

On 2 September 2003 the W3C (re-)stated that development had stopped, citing a lack of resources.[22] On 29 January 2004, the W3C once again confirmed that it would not continue development, and was seeking open source community maintainers.

The first (and only) "community supported maintenance release" was made in 2005, after a gap of 3 years.[23] After a further lapse of 12 years, a security patch was released in 2017.[24]

Features

In 2003, Kahan claimed that "libwww is the only library that has a full implementation of the HTTP specification, including caching and pipelining."[22]

Libwww supports following protocols:

Other features include:

Libwww supports plug-ins.[34]

Applications using libwww

It has been used for applications of varying sizes, including web browsers, editors, Internet bots, and batch tools. Pluggable modules provided with libwww add support for HTTP/1.1 with caching, pipelining, POST, Digest Authentication, and deflate.

The W3C created the Arena web browser as a testbed and testing tool for HTML3, Cascading Style Sheets (CSS), Portable Network Graphics (PNG) and libwww, among other technologies.[35] Arena was later replaced in that role by Amaya.[36]

According to a survey conducted in September 2003, at least 19 applications used libwww.[37]

Integrated applications in libwww are:

Criticism

The developers of libcurl have criticised libwww as being not as portable, not thread-safe and lacking several HTTP authentication types.[58] Neither libcurl nor libwww are lightweight enough for some projects.[59]

See also

External links

Notes and References

  1. CERN Common World-Wide Web Library Version 2.16pre1 Available . 17 June 1994 . Henrik Frystyk . Nielsen . Henrik Frystyk Nielsen . 2022-10-17 . www-lib@www0.cern.ch . CERN.
  2. Nielsen . Henrik Frystyk . Henrik Frystyk Nielsen . Lie . Håkon W. . Håkon Wium Lie . October 1994 . Towards a uniform library of common code: A presentation of the CERN World-Wide Web Library . 2022-10-17 . 10.1016/0169-7552(95)00104-8 . Computer Networks and ISDN Systems . 28 . 1–2 . 13–23.
  3. Web site: W3C Reference Library . 1.8 . 22 Jun 1995 . Nielsen . Henrik Frystyk . Henrik Frystyk Nielsen . World Wide Web Consortium.
  4. Web site: Libwww - the W3C Sample Code Library . 1.67 . 18 Feb 1997 . Nielsen . Henrik Frystyk . Henrik Frystyk Nielsen . World Wide Web Consortium.
  5. Web site: Web History Day: Pioneering Software and Sites . The World Wide Web History Project . 28 March 2010.
  6. Web site: Kahan. José . Change History of libwww . . 1.41 . 2022-10-17 . 7 June 2002.
  7. Web site: W3C libwww libraries . PhysioNet . . 30 May 2010 . Cambridge, MA . 19 March 2008 . 18 May 2015 . https://web.archive.org/web/20150518083431/http://physionet.incor.usp.br/physiotools/libwww/ . dead .
  8. Kesan . Jay P. . Shah . Rajiv C. . Deconstructing Code . Yale Journal of Law & Technology . 2004 . 6 . 277–389 [291–292] . live . 2022-10-17 . 597543 . https://web.archive.org/web/20100120003906/http://www.yjolt.org/files/kesan-6-YJOLT-277.pdf . 20 January 2010.
  9. Web site: Tim . Berners-Lee . Tim Berners-Lee . Common Library . . 3 June 2010 . 3 November 1992.
  10. Web site: How the web began . . 25 July 2010. 2008.
  11. Web site: Crémel . Nicole . A Little History of the World Wide Web . . 2 June 2010 . 5 April 2001. https://web.archive.org/web/20071219114722/http://ref.web.cern.ch/ref/CERN/CNL/2001/001/www-history/. 19 December 2007 . dead.
  12. Web site: May World-Wide Web News . . 7 June 2010 . Tim . Berners-Lee . Tim Berners-Lee . May 1993.
  13. Web site: Berners-Lee . Tim . Policy . . 1 September 2010 . Tim Berners-Lee.
  14. Web site: Petrie . Charles . Robert . Cailliau . Robert Cailliau . November 1997 . Interview Robert Cailliau on the WWW Proposal: "How It Really Happened." . . 18 August 2010 . dead . https://web.archive.org/web/20110106041256/http://www.computer.org/portal/web/computingnow/ic-cailliau . 6 January 2011.
  15. Web site: Kahan. José . Libwww – the W3C Protocol Library . . 2022-10-17 . 2 September 2003.
  16. The Hypertext Transfer Protocol in the World-Wide Web Library of common code . i . Nielsen . Henrik Frystyk . Henrik Frystyk Nielsen . 1994-08-10 . Master's . . 2022-10-17.
  17. Change of my status wrt libwww . Nielsen . Henrik Frystyk . Henrik Frystyk Nielsen . 1999-08-01 . 2022-10-17 . www-lib . World Wide Web Consortium.
  18. Web site: Kreutzmann . Dr. Helge . WWW-Browsers for Linux . 3 June 2010 . 6 January 2010.
  19. ANNOUNCEMENT: Libwww 5.1a Available . Nielsen . Henrik Frystyk . Henrik Frystyk Nielsen . 22 Mar 1997 . 2022-10-17 . www-lib . World Wide Web Consortium.
  20. Web site: Libwww News and Event Timeline . . 2022-10-17.
  21. Starting a libwww survey . Kahan . José . 22 Sep 2000 . www-lib . . 2022-10-17.
  22. Web site: Kahan . José . Future of Libwww Survey . . 2022-10-17 . 2 September 2003.
  23. Web site: Release Notes for Libwww . 2005-10-21 . Kahan . José . World Wide Web Consortium.
  24. Web site: libwww 5.4.2 release . . Jun 26, 2017 . 2022-10-17.
  25. Web site: W3C Library Packages and Interfaces . . 27 June 2010 . Henrik Frystyk Nielsen . Henrik Frystyk . Nielsen . 12 July 2000.
  26. Web site: W3C Sample Code Library libwww SSL Transport Wrapper . . 28 June 2010 . 9 June 2000.
  27. Web site: W3C Sample Code Library libwww ZLib Streams . . 28 June 2010 . 24 May 1998.
  28. Web site: Simple HTML Parser With Text Object Converter . . 28 June 2010 . 6 January 1999.
  29. Web site: Declaration of W3C Sample Code HTML MODULE . . 28 June 2010 . 22 February 1999.
  30. Web site: SGML Parser . . 28 June 2010 . 2 April 1999.
  31. Web site: Declaration of W3C Sample Code XML/RDF Module . . 28 June 2010 . 18 April 1999.
  32. Web site: Stylesheet Manager . . 28 June 2010 . 6 January 1999.
  33. Web site: W3C Sample Code Library libwww SQL Interface . . 28 June 2010 . 24 May 1998.
  34. Web site: W3C Reference Library [position paper] ]. . 27 June 2010 . Henrik Frystyk . Nielsen . Henrik Frystyk Nielsen . 14 May 1998.
  35. Web site: Lie . Håkon Wium . Håkon Wium Lie . Arena: Frequently Answered Questions . . 2 June 2010 . 15 June 1996.
  36. Web site: Welcome to Arena beta-3 . . 2 June 2010 . 16 September 1996 . Yves . Lafon . Lie . Håkon Wium . Håkon Wium Lie.
  37. Kahan . José . Results of the future of libwww survey . www-lib . . 2022-10-17 . 29 January 2004.
  38. Web site: Secret . Arthur . Agora . . 20 June 2010. https://web.archive.org/web/19970606093552/http://www.w3.org/Agora/Overview.html. 6 June 1997 . 12 November 1996.
  39. Web site: Nielsen . Henrik Frystyk . Henrik Frystyk Nielsen . Libwww Hackers . . 29 May 2010 . 7 June 2002.
  40. Web site: Why Libwww? . 15 June 2010 . 5 August 1999 . José . Kahan.
  41. Web site: Quint . Vincent . Amaya Release history . . 29 May 2010 . 10 December 2009.
  42. Web site: HTTP Request fields . 3 May 1994. Protocols . . 28 March 2010.
  43. Web site: www-lib . . 15 June 2010 . Henrik Frystyk Nielsen . Henrik Frystyk . Nielsen . 1 December 1998. https://web.archive.org/web/20010418121819/http://groups.yahoo.com/group/www-lib/message/626. 18 April 2001.
  44. Web site: Libwww – the W3C Sample Code Library . . 15 June 2010 . José . Kahan . 5 August 1999.
  45. Web site: Gallagher . James . libwww replacement . . 1 June 2010 . 10 May 2002 . dead . https://web.archive.org/web/20110727145143/http://mailman.opendap.org/pipermail/opendap-tech/2002-May/000861.html . 27 July 2011.
  46. Web site: Gallagher . James . libwww v versus libcurl . . 1 June 2010 . 19 June 2002 . dead . https://web.archive.org/web/20110727145203/http://mailman.opendap.org/pipermail/opendap-tech/2002-June/000920.html . 27 July 2011.
  47. Paoli . Jean . 11–14 December 1995 . Rules for extending a WWW client: The Symposia API . . 15 August 2010.
  48. Web site: Luotonen . Ari . Ari Luotonen . . 15 August 2010.
  49. Web site: Berners-Lee . Tim . Tim Berners-Lee . 3 November 1992 . Macintosh Browser . . 2 June 2010.
  50. Web site: libwww - ROS Wiki . Robot Operating System (ROS) . 2 June 2010 . dead . https://web.archive.org/web/20100625235402/http://www.ros.org/wiki/libwww . 2010-06-25.
  51. Book: Ball, Steve . 10–13 July 1996 . SurfIt! – A WWW Browser . Proceedings of the Fourth USENIX Tcl/Tk Workshop . USENIX . 28 November 2010. Monterey, CA . PostScript.
  52. Web site: Wang . Joseph . 1 May 1993 . tkWWW Version 0.7 alpha . 16 November 2010.
  53. Web site: WorldWideWeb Source Files . . 21 June 2010.
  54. Web site: Readme. . 5 July 2010 .
  55. Web site: WebCon: the Libwww Command Line Tool . . 27 June 2010 . Henrik Frystyk Nielsen . Henrik Frystyk . Nielsen . 4 May 1999.
  56. Book: Krol, Ed . Ed Krol . September 1992 . The Whole Internet User's Guide and Catalog, 3rd printing (February 1993) . O'Reilly & Associates . 227.
  57. Web site: Henrik Frystyk . Nielsen . Henrik Frystyk Nielsen . 4 May 1999 . Webbot – the Libwww Robot . . 27 June 2010.
  58. Web site: Daniel . Stenberg . Notes About Libwww compared to libcurl . . 1 June 2010 . 1 May 2010.
  59. Web site: Smith . Timothy B. . Simple HTTP Client without 'libcurl' or 'libwww' . . 1 June 2010 . 11 September 2007 . dead . https://web.archive.org/web/20071027095032/http://www.ucdot.org/article.pl?sid=07%2F09%2F11%2F0411252 . 27 October 2007.