Libwww

Last updated

libwww
Other names[CERN] Common [WWW] Library, [1] [2]
[[CERN] World-Wide Web] Library of Common Code, [3]
W3C Reference Library, [4]
W3C Sample Code Library, [5]
W3C Protocol Library [6]
Original author(s) Tim Berners-Lee, [6]
Jean-François Groff, [7] [6]
Henrik Frystyk Nielsen [6] [8]
Developer(s) José Kahan
Initial release1.0, November 1992;30 years ago (1992-11) [9]
Stable release
5.4.2 [10]   OOjs UI icon edit-ltr-progressive.svg / 24 June 2017;6 years ago (24 June 2017)
Repository
Written in C
Operating system FreeBSD, [11] Solaris, [11] Linux, [11] Mac OS X, [11] Microsoft Windows [11]
Type Library for web browsers, servers, and other protocols
License W3C Software Notice and License
Website www.w3.org/Library

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).

Contents

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

libcurl is considered[ by whom? ] to be a modern replacement for libwww. [16]

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. [17] In the beginning, libwww was referred to as the Common Library and was not available as a separate product. [1] Before becoming generally available, libwww was integrated in the CERN program library (CERNLIB). [18] In July 1992 the library was ported to DECnet. [19] 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. [20] 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. [17] [21] The rapid early development of the library caused Robert Cailliau problems when integrating it into his MacWWW browser. [12]

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). [6] [8] [22] On 21 March 1995, with the release of version 3.0, CERN transferred responsibility for libwww to the W3C. [9] From 1995 onwards, the Line Mode Browser was no longer released separately, but part of the libwww package. [23]

On 2 March 1997, Nielsen announced that Libwww 5.1 was expected to be the last release. [13] 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. [24]

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. [22] [14]

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

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

Features

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

Libwww supports following protocols:

Other features include:

Libwww supports plug-ins. [37]

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. [38] Arena was later replaced in that role by Amaya. [39]

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

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. [60] Neither libcurl nor libwww are lightweight enough for some projects. [61]

See also

Related Research Articles

<span class="mw-page-title-main">HTML</span> HyperText Markup Language

The HyperText Markup Language or HTML is the standard markup language for documents designed to be displayed in a web browser. It defines the meaning and structure of web content. It is often assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaScript.

<span class="mw-page-title-main">Tim Berners-Lee</span> English computer scientist, inventor of the World Wide Web (born 1955)

Sir Timothy John Berners-Lee,, also known as TimBL, is an English computer scientist best known as the inventor of the World Wide Web, the HTML markup language, the URL system, and HTTP. He is a professorial research fellow at the University of Oxford and a professor emeritus at the Massachusetts Institute of Technology (MIT).

<span class="mw-page-title-main">World Wide Web</span> Linked hypertext system on the Internet

The World Wide Web (WWW), commonly known as the Web, is an information system enabling information to be shared over the Internet through simplified ways meant to appeal to users beyond IT specialists and hobbyists, as well as documents and other web resources to be accessed over the Internet according to specific rules, the Hypertext Transfer Protocol (HTTP).

<span class="mw-page-title-main">Mosaic (web browser)</span> Early web browser (1993–1997)

NCSA Mosaic is a discontinued web browser, and one of the first to be widely available. It was instrumental in popularizing the World Wide Web and the general Internet by integrating multimedia such as text and graphics. It was named for its support of multiple Internet protocols, such as Hypertext Transfer Protocol, File Transfer Protocol, Network News Transfer Protocol, and Gopher. Its intuitive interface, reliability, personal computer support, and simple installation all contributed to its popularity within the web. Mosaic is the first browser to display images inline with text instead of in a separate window. It is often described as the first graphical web browser, though it was preceded by WorldWideWeb, the lesser-known Erwise, and ViolaWWW.

<span class="mw-page-title-main">WorldWideWeb</span> First web browser; renamed Nexus

WorldWideWeb is the first web browser and web page editor. It was discontinued in 1994. It was the first WYSIWYG HTML editor.

<span class="mw-page-title-main">Håkon Wium Lie</span> Norwegian software engineer

Håkon Wium Lie is a Norwegian web pioneer, a standards activist, and the Chief Technology Officer of Opera Software from 1998 until the browser was sold to new owners in 2016. He is best known for developing Cascading Style Sheets (CSS) while working with Tim Berners-Lee and Robert Cailliau at CERN in 1994.

A testbed is a platform for conducting rigorous, transparent, and replicable testing of scientific theories, computing tools, and new technologies.

<span class="mw-page-title-main">Robert Cailliau</span> Belgian engineer, computer scientist, and co-inventor of the World Wide Web

Robert Cailliau is a Belgian informatics engineer, computer scientist and author who proposed the first (pre-www) hypertext system for CERN in 1987 and collaborated with Tim Berners-Lee on the World Wide Web from before it got its name. He designed the historical logo of the WWW, organized the first International World Wide Web Conference at CERN in 1994 and helped transfer Web development from CERN to the global Web consortium in 1995. Together with James Gillies, Cailliau wrote How the Web Was Born, the first book-length account of the origins of the World Wide Web.

<span class="mw-page-title-main">Line Mode Browser</span> Command-line web browser

The Line Mode Browser is the second web browser ever created. The browser was the first demonstrated to be portable to several different operating systems. Operated from a simple command-line interface, it could be widely used on many computers and computer terminals throughout the Internet. The browser was developed starting in 1990, and then supported by the World Wide Web Consortium (W3C) as an example and test application for the libwww library.

<span class="mw-page-title-main">HTTP pipelining</span>

HTTP pipelining is a feature of HTTP/1.1, which allows multiple HTTP requests to be sent over a single TCP connection without waiting for the corresponding responses. HTTP/1.1 requires servers to respond to pipelined requests correctly, with non-pipelined but valid responses even if server does not support HTTP pipelining. Despite this requirement, many legacy HTTP/1.1 servers do not support pipelining correctly, forcing most HTTP clients to not use HTTP pipelining.

<span class="mw-page-title-main">Nicola Pellow</span> British information scientist who worked on the early World Wide Web

Nicola Pellow is an English mathematician and information scientist who was one of the nineteen members of the WWW Project at CERN working with Tim Berners-Lee. She joined the project in November 1990, while an undergraduate maths student enrolled on a sandwich course at Leicester Polytechnic. Pellow recalled having little experience with programming languages, "... apart from using a bit of Pascal and FORTRAN as part of my degree course."

<span class="mw-page-title-main">History of the World Wide Web</span> Information system running in the Internet

The World Wide Web is a global information medium which users can access via computers connected to the Internet. The term is often mistakenly used as a synonym for the Internet, but the Web is a service that operates over the Internet, just as email and Usenet do. The history of the Internet and the history of hypertext date back significantly further than that of the World Wide Web.

<span class="mw-page-title-main">Erwise</span> Discontinued graphical web browser

Erwise is a discontinued pioneering web browser, and the first available with a graphical user interface.

Henrik Frystyk Nielsen is a Danish engineer and computer scientist. He is best known for his pioneering work on the World Wide Web and subsequent work on computer network protocols.

<span class="mw-page-title-main">MacWWW</span>

MacWWW, also known as Samba, is an early minimalist web browser from 1992 meant to run on Macintosh computers. It was the first web browser for the classic Mac OS platform, and the first for any non-Unix operating system. MacWWW tries to emulate the design of WorldWideWeb. Unlike modern browsers it opens each link in a new window only after a double-click. It was a commercial product from CERN and cost 50 European Currency Units

<span class="mw-page-title-main">CERN httpd</span> Early web server

CERN httpd is an early, now discontinued, web server (HTTP) daemon originally developed at CERN from 1990 onwards by Tim Berners-Lee, Ari Luotonen and Henrik Frystyk Nielsen. Implemented in C, it was the first web server software.

<span class="mw-page-title-main">Arena (web browser)</span> Web browser and Web authoring tool for Unix

The Arena browser was one of the first web browsers for Unix. Originally begun by Dave Raggett in 1993, development continued at CERN and the World Wide Web Consortium (W3C) and subsequently by Yggdrasil Computing. Arena was used in testing the implementations for HTML version 3.0, Cascading Style Sheets (CSS), Portable Network Graphics (PNG), and libwww. Arena was widely used and popular at the beginning of the World Wide Web.

<span class="mw-page-title-main">Dave Raggett</span> English computer specialist

Dave Raggett is an English computer specialist who has played a major role in implementing the World Wide Web since 1992. He has been a W3C Fellow at the World Wide Web Consortium since 1995 and worked on many of the key web protocols, including HTTP, HTML, XHTML, MathML, XForms, and VoiceXML. Raggett also wrote HTML Tidy and is currently pioneering W3C's work on the Web of Things. He lives in the west of England.

tkWWW

tkWWW is an early, now discontinued web browser and WYSIWYG HTML editor written by Joseph Wang at MIT as part of Project Athena and the Globewide Network Academy project. The browser was based on the Tcl language and the Tk (toolkit) extension but did not achieve broad user-acceptance or market share, although it was included in many Linux distributions by default. Joseph Wang wanted tkWWW to become a replacement for r r n and to become a "swiss army knife" of networked computing.

Agora was a World Wide Web email browser and was a proof of concept to help people to use the full internet. Agora was an email-based web browser designed for non-graphic terminals and to help people without full access to the internet such as in developing countries or without a permanent internet connection. Similar to W3Gate, Agora was a server application designed to fetch HTML documents through e-mail rather than http.

References

  1. 1 2 Berners-Lee, Tim (3 November 1992). "Common Library". World Wide Web Consortium . Retrieved 3 June 2010.
  2. Nielsen, Henrik Frystyk (17 June 1994). "CERN Common World-Wide Web Library Version 2.16pre1 Available". www-lib@www0.cern.ch (Mailing list). CERN . Retrieved 17 October 2022.
  3. Nielsen, Henrik Frystyk; Lie, Håkon W. (October 1994). "Towards a uniform library of common code: A presentation of the CERN World-Wide Web Library". Computer Networks and ISDN Systems. 28 (1–2): 13–23. doi:10.1016/0169-7552(95)00104-8 . Retrieved 17 October 2022.
  4. Nielsen, Henrik Frystyk, ed. (22 June 1995). "W3C Reference Library". 1.8. World Wide Web Consortium.
  5. Nielsen, Henrik Frystyk, ed. (18 February 1997). "Libwww - the W3C Sample Code Library". 1.67. World Wide Web Consortium.
  6. 1 2 3 4 5 6 Kahan, José, ed. (2 September 2003). "Libwww – the W3C Protocol Library". World Wide Web Consortium . Retrieved 17 October 2022.
  7. "Web History Day: Pioneering Software and Sites". The World Wide Web History Project. Retrieved 28 March 2010.
  8. 1 2 Nielsen, Henrik Frystyk (10 August 1994). The Hypertext Transfer Protocol in the World-Wide Web Library of common code (Master's thesis). Aalborg University. p. i. Retrieved 17 October 2022.
  9. 1 2 3 4 5 6 Kahan, José, ed. (7 June 2002). "Change History of libwww". 1.41. World Wide Web Consortium . Retrieved 17 October 2022.
  10. Error: Unable to display the reference properly. See the documentation for details.
  11. 1 2 3 4 5 "W3C libwww libraries". PhysioNet. Cambridge, MA: University of São Paulo. 19 March 2008. Archived from the original on 18 May 2015. Retrieved 30 May 2010.
  12. 1 2 3 Petrie, Charles; Cailliau, Robert (November 1997). "Interview Robert Cailliau on the WWW Proposal: "How It Really Happened."". Institute of Electrical and Electronics Engineers. Archived from the original on 6 January 2011. Retrieved 18 August 2010.
  13. 1 2 Nielsen, Henrik Frystyk (22 March 1997). "ANNOUNCEMENT: Libwww 5.1a Available". www-lib (Mailing list). World Wide Web Consortium . Retrieved 17 October 2022.
  14. 1 2 Kahan, José (22 September 2000). "Starting a libwww survey". www-lib (Mailing list). World Wide Web Consortium . Retrieved 17 October 2022.
  15. 1 2 Kahan, José (21 October 2005). "Release Notes for Libwww". World Wide Web Consortium.
  16. Moody, George B. (14 July 2010). "WFDB Programmer's Guide: E. Sources" . Retrieved 4 August 2010.
  17. 1 2 Kesan, Jay P.; Shah, Rajiv C. (2004). "Deconstructing Code" (PDF). Yale Journal of Law & Technology. 6: 277–389 [291–292]. SSRN   597543. Archived (PDF) from the original on 20 January 2010. Retrieved 17 October 2022.
  18. "How the web began". CERN. 2008. Retrieved 25 July 2010.
  19. Crémel, Nicole (5 April 2001). "A Little History of the World Wide Web". CERN. Archived from the original on 19 December 2007. Retrieved 2 June 2010.
  20. Berners-Lee, Tim (May 1993). "May World-Wide Web News". World Wide Web Consortium . Retrieved 7 June 2010.
  21. Berners-Lee, Tim. "Policy". World Wide Web Consortium . Retrieved 1 September 2010.
  22. 1 2 Nielsen, Henrik Frystyk (1 August 1999). "Change of my status wrt libwww". www-lib (Mailing list). World Wide Web Consortium . Retrieved 17 October 2022.
  23. Kreutzmann, Dr. Helge (6 January 2010). "WWW-Browsers for Linux" . Retrieved 3 June 2010.
  24. "Libwww News and Event Timeline". World Wide Web Consortium . Retrieved 17 October 2022.
  25. 1 2 Kahan, José (2 September 2003). "Future of Libwww Survey". World Wide Web Consortium . Retrieved 17 October 2022.
  26. 1 2 Kahan, José (29 January 2004). "Results of the future of libwww survey". www-lib (Mailing list). World Wide Web Consortium . Retrieved 17 October 2022.
  27. "libwww 5.4.2 release". GitHub . 26 June 2017. Retrieved 17 October 2022.
  28. 1 2 3 4 5 6 7 Nielsen, Henrik Frystyk (12 July 2000). "W3C Library Packages and Interfaces". World Wide Web Consortium . Retrieved 27 June 2010.
  29. "W3C Sample Code Library libwww SSL Transport Wrapper". World Wide Web Consortium. 9 June 2000. Retrieved 28 June 2010.
  30. "W3C Sample Code Library libwww ZLib Streams". World Wide Web Consortium. 24 May 1998. Retrieved 28 June 2010.
  31. "Simple HTML Parser With Text Object Converter". World Wide Web Consortium. 6 January 1999. Retrieved 28 June 2010.
  32. "Declaration of W3C Sample Code HTML MODULE". World Wide Web Consortium. 22 February 1999. Retrieved 28 June 2010.
  33. 1 2 "Declaration of W3C Sample Code XML/RDF Module". World Wide Web Consortium. 18 April 1999. Retrieved 28 June 2010.
  34. "SGML Parser". World Wide Web Consortium. 2 April 1999. Retrieved 28 June 2010.
  35. "Stylesheet Manager". World Wide Web Consortium. 6 January 1999. Retrieved 28 June 2010.
  36. "W3C Sample Code Library libwww SQL Interface". World Wide Web Consortium. 24 May 1998. Retrieved 28 June 2010.
  37. 1 2 3 4 Nielsen, Henrik Frystyk (14 May 1998). "W3C Reference Library [position paper]". World Wide Web Consortium . Retrieved 27 June 2010.
  38. Lie, Håkon Wium (15 June 1996). "Arena: Frequently Answered Questions". World Wide Web Consortium . Retrieved 2 June 2010.
  39. Lafon, Yves; Lie, Håkon Wium (16 September 1996). "Welcome to Arena beta-3". World Wide Web Consortium . Retrieved 2 June 2010.
  40. Secret, Arthur (12 November 1996). "Agora". World Wide Web Consortium. Archived from the original on 6 June 1997. Retrieved 20 June 2010.
  41. 1 2 Nielsen, Henrik Frystyk (7 June 2002). "Libwww Hackers". World Wide Web Consortium . Retrieved 29 May 2010.
  42. 1 2 3 4 5 Kahan, José (5 August 1999). "Why Libwww?" . Retrieved 15 June 2010.
  43. Quint, Vincent (10 December 2009). "Amaya Release history". World Wide Web Consortium . Retrieved 29 May 2010.
  44. "HTTP Request fields". Protocols. World Wide Web Consortium. 3 May 1994. Retrieved 28 March 2010.
  45. Nielsen, Henrik Frystyk (1 December 1998). "www-lib". Yahoo! Groups. Archived from the original on 18 April 2001. Retrieved 15 June 2010.
  46. Kahan, José (5 August 1999). "Libwww – the W3C Sample Code Library". World Wide Web Consortium . Retrieved 15 June 2010.
  47. Gallagher, James (10 May 2002). "libwww replacement". OPeNDAP. Archived from the original on 27 July 2011. Retrieved 1 June 2010.
  48. Gallagher, James (19 June 2002). "libwww v versus libcurl". OPeNDAP. Archived from the original on 27 July 2011. Retrieved 1 June 2010.
  49. Paoli, Jean (11–14 December 1995). Rules for extending a WWW client: The Symposia API (Report). World Wide Web Consortium . Retrieved 15 August 2010.
  50. Luotonen, Ari. "Ari Luotonen". World Wide Web Consortium . Retrieved 15 August 2010.
  51. Berners-Lee, Tim (3 November 1992). "Macintosh Browser". World Wide Web Consortium . Retrieved 2 June 2010.
  52. "libwww - ROS Wiki". Robot Operating System (ROS). Archived from the original on 25 June 2010. Retrieved 2 June 2010.
  53. Ball, Steve (10–13 July 1996). SurfIt! – A WWW Browser (PostScript). Retrieved 28 November 2010.{{cite book}}: |work= ignored (help)
  54. Wang, Joseph (1 May 1993). "tkWWW Version 0.7 alpha" . Retrieved 16 November 2010.
  55. "WorldWideWeb Source Files". World Wide Web Consortium . Retrieved 21 June 2010.
  56. "Readme". evolt.org . Retrieved 5 July 2010.
  57. Nielsen, Henrik Frystyk (4 May 1999). "WebCon: the Libwww Command Line Tool". World Wide Web Consortium . Retrieved 27 June 2010.
  58. Krol, Ed (September 1992). The Whole Internet User's Guide and Catalog, 3rd printing (February 1993). O'Reilly & Associates. p. 227.
  59. Nielsen, Henrik Frystyk (4 May 1999). "Webbot – the Libwww Robot". World Wide Web Consortium . Retrieved 27 June 2010.
  60. Stenberg, Daniel (1 May 2010). "Notes About Libwww compared to libcurl". Haxx . Retrieved 1 June 2010.
  61. Smith, Timothy B. (11 September 2007). "Simple HTTP Client without 'libcurl' or 'libwww'". μClinux. Archived from the original on 27 October 2007. Retrieved 1 June 2010.