Software:Libwww
Original author(s) | Tim Berners-Lee,[1] Jean-François Groff,[2][1] Henrik Frystyk Nielsen[1][3] |
---|---|
Developer(s) | José Kahan |
Initial release | 1.0, November 1992[4] |
Written in | C |
Operating system | FreeBSD,[5] Solaris,[5] Linux,[5] Mac OS X,[5] Microsoft Windows[5] |
Type | Library for web browsers, servers, and other protocols |
License | W3C Software Notice and License |
Website | www |
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.[6] By 1997, interest in libwww declined, and the World Wide Web Consortium (W3C), which took over from CERN, reduced its commitment to the project.[7] Later, the purpose of libwww was redefined to be "a testbed for protocol experiments";[1] in that role it was maintained for the benefit of the W3C's web standards-promoting browser Amaya.[8] Active development of libwww stopped in 2000.[4][9]
libcurl is considered[by whom?] to be a modern replacement for libwww.[10]
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.[11] In the beginning, libwww was referred to as the Common Library and was not available as a separate product.[12] Before becoming generally available, libwww was integrated in the CERN program library (CERNLIB).[13] In July 1992 the library was ported to DECnet.[14] 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.[15] 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.[11][16] The rapid early development of the library caused Robert Cailliau problems when integrating it into his MacWWW browser.[6]
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).[1][3][17] On 21 March 1995, with the release of version 3.0, CERN transferred responsibility for libwww to the W3C.[4] 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.[7] 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.[19]
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][8]
On 2 September 2003 the W3C (re-)stated that development had stopped, citing a lack of resources.[20] On 29 January 2004, the W3C once again confirmed that it would not continue development, and was seeking open source community maintainers.[21]
The first (and only) "community supported maintenance release" was made in 2005, after a gap of 3 years.[9] After a further lapse of 12 years, a security patch was released in 2017.[22]
Features
In 2003, Kahan claimed that "libwww is the only library that has a full implementation of the HTTP specification, including caching and pipelining."[20]
Libwww supports following protocols:
- file[23]
- FTP[23]
- Gopher[23]
- HTTP 1.1 with a Persistent Cache Manager,[23] pipelining[4]
- NNTP[23]
- Telnet[23]
- WAIS[23]
Other features include:
- TLS and SSL can be used through OpenSSL.[24]
- gzip compression and decompression through zlib[25]
- a HTML,[26][27] RDF,[28] SGML[29] and XML[28] parser and a style sheet manager[30]
- an integration of a SQL database (using the MySQL server) for e.g. web crawlers[31]
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.[33] Arena was later replaced in that role by Amaya.[34]
According to a survey conducted in September 2003, at least 19 applications used libwww.[21]
- Agora[35]
- Arena[36][37]
- Amaya[36][37][38]
- Cello[39]
- CERN httpd server[37]
- Cygwin[40][41]
- Distributed Oceanographic Data Systems with the OPeNDAP[42][43]
- GRIF Symposia, a HTML editor[44][45]
- Lynx[4][37]
- MacWWW[46]
- Mosaic[4][6][37]
- Robot Operating System (ROS)[47]
- TkWeb[48]
- tkWWW[49]
- WorldWideWeb (later Nexus)[50][51]
Integrated applications in libwww are:
- Command Line Tool, an application which shows how to use libwww to build simple batch mode tools to access the Web.[32][52]
- Line Mode Browser, a Spartan web browser.[53]
- Webbot, a simple application showing how to use libwww to build robots.[32][54]
- Mini Server, a small application showing how to implement a server or a proxy using libwww.[32]
Criticism
The developers of libcurl have criticised libwww as being not as portable, not thread-safe and lacking several HTTP authentication types.[55] Neither libcurl nor libwww are lightweight enough for some projects.[56]
See also
- Library for WWW in Perl
- cURL
References
- ↑ 1.0 1.1 1.2 1.3 1.4 Kahan, José, ed (2 September 2003). "Libwww – the W3C Protocol Library". World Wide Web Consortium. https://www.w3.org/Library/.
- ↑ "Web History Day: Pioneering Software and Sites". The World Wide Web History Project. http://1997.webhistory.org/historyday/abstracts.html#jean.
- ↑ 3.0 3.1 Nielsen, Henrik Frystyk (1994-08-10). The Hypertext Transfer Protocol in the World-Wide Web Library of common code (Master's thesis). Aalborg University. p. i. Retrieved 2022-10-17.
- ↑ 4.0 4.1 4.2 4.3 4.4 4.5 Kahan, José, ed (7 June 2002). "Change History of libwww". World Wide Web Consortium. https://dev.w3.org/cvsweb/~checkout~/libwww/Library/User/History.html?rev=1.41.
- ↑ 5.0 5.1 5.2 5.3 5.4 "W3C libwww libraries". PhysioNet. Cambridge, MA: University of São Paulo. 19 March 2008. http://physionet.incor.usp.br/physiotools/libwww/.
- ↑ 6.0 6.1 6.2 Petrie, Charles; Cailliau, Robert (November 1997). "Interview Robert Cailliau on the WWW Proposal: "How It Really Happened."". Institute of Electrical and Electronics Engineers. http://www.computer.org/portal/web/computingnow/ic-cailliau.
- ↑ 7.0 7.1 Nielsen, Henrik Frystyk (22 Mar 1997). "ANNOUNCEMENT: Libwww 5.1a Available". www-lib (Mailing list). World Wide Web Consortium. Retrieved 2022-10-17.
- ↑ 8.0 8.1 Kahan, José (22 Sep 2000). "Starting a libwww survey". www-lib (Mailing list). World Wide Web Consortium. Retrieved 2022-10-17.
- ↑ 9.0 9.1 Kahan, José (2005-10-21). "Release Notes for Libwww". World Wide Web Consortium. https://www.w3.org/Library/User/ReleaseNotes.html.
- ↑ Moody, George B. (14 July 2010). "WFDB Programmer's Guide: E. Sources". http://www.physionet.org/physiotools/wpg/wpg_67.htm#SEC153.
- ↑ 11.0 11.1 Kesan, Jay P.; Shah, Rajiv C. (2004). "Deconstructing Code". Yale Journal of Law & Technology 6: 277–389 [291–292]. https://yjolt.org/sites/default/files/kesan-6-yjolt-277.pdf. Retrieved 2022-10-17.
- ↑ Berners-Lee, Tim (3 November 1992). "Common Library". World Wide Web Consortium. http://www.w3.org/History/19921103-hypertext/hypertext/WWW/Library/Status.html.
- ↑ "How the web began". CERN. 2008. http://public.web.cern.ch/public/en/About/WebStory-en.html.
- ↑ Crémel, Nicole (5 April 2001). "A Little History of the World Wide Web". CERN. http://ref.web.cern.ch/ref/CERN/CNL/2001/001/www-history/.
- ↑ Berners-Lee, Tim (May 1993). "May World-Wide Web News". World Wide Web Consortium. http://www.w3.org/News/9305.html.
- ↑ Berners-Lee, Tim. "Policy". World Wide Web Consortium. http://www.w3.org/History/19921103-hypertext/hypertext/WWW/Policy.html.
- ↑ 17.0 17.1 Nielsen, Henrik Frystyk (1999-08-01). "Change of my status wrt libwww". www-lib (Mailing list). World Wide Web Consortium. Retrieved 2022-10-17.
- ↑ Kreutzmann, Dr. Helge (6 January 2010). "WWW-Browsers for Linux". http://www.helgefjell.de/browser.php.
- ↑ "Libwww News and Event Timeline". World Wide Web Consortium. https://www.w3.org/Library/OldEvents.html.
- ↑ 20.0 20.1 Kahan, José (2 September 2003). "Future of Libwww Survey". World Wide Web Consortium. https://www.w3.org/Library/Survey2.
- ↑ 21.0 21.1 Kahan, José (29 January 2004). "Results of the future of libwww survey". www-lib (Mailing list). World Wide Web Consortium. Retrieved 2022-10-17.
- ↑ "libwww 5.4.2 release". Jun 26, 2017. https://github.com/w3c/libwww/releases/tag/5.4.2.
- ↑ 23.0 23.1 23.2 23.3 23.4 23.5 23.6 Nielsen, Henrik Frystyk (12 July 2000). "W3C Library Packages and Interfaces". World Wide Web Consortium. http://www.w3.org/Library/User/Guide/#Protocol.
- ↑ "W3C Sample Code Library libwww SSL Transport Wrapper". World Wide Web Consortium. 9 June 2000. http://www.w3.org/Library/src/SSL/WWWSSL.html.
- ↑ "W3C Sample Code Library libwww ZLib Streams". World Wide Web Consortium. 24 May 1998. http://www.w3.org/Library/src/WWWZip.html.
- ↑ "Simple HTML Parser With Text Object Converter". World Wide Web Consortium. 6 January 1999. http://www.w3.org/Library/src/HTML.html.
- ↑ "Declaration of W3C Sample Code HTML MODULE". World Wide Web Consortium. 22 February 1999. http://www.w3.org/Library/src/WWWHTML.html.
- ↑ 28.0 28.1 "Declaration of W3C Sample Code XML/RDF Module". World Wide Web Consortium. 18 April 1999. http://www.w3.org/Library/src/WWWXML.html.
- ↑ "SGML Parser". World Wide Web Consortium. 2 April 1999. http://www.w3.org/Library/src/SGML.html.
- ↑ "Stylesheet Manager". World Wide Web Consortium. 6 January 1999. http://www.w3.org/Library/src/HTStyle.html.
- ↑ "W3C Sample Code Library libwww SQL Interface". World Wide Web Consortium. 24 May 1998. http://www.w3.org/Library/src/WWWSQL.html.
- ↑ 32.0 32.1 32.2 32.3 Nielsen, Henrik Frystyk (14 May 1998). "W3C Reference Library [position paper"]. World Wide Web Consortium. http://www.w3.org/Library/User/Paper/Position.html.
- ↑ Lie, Håkon Wium (15 June 1996). "Arena: Frequently Answered Questions". World Wide Web Consortium. http://www.w3.org/Arena/faq.
- ↑ Lafon, Yves; Lie, Håkon Wium (16 September 1996). "Welcome to Arena beta-3". World Wide Web Consortium. http://www.w3.org/Arena/beta-3.
- ↑ Secret, Arthur (12 November 1996). "Agora". World Wide Web Consortium. http://www.w3.org/Agora/Overview.html.
- ↑ 36.0 36.1 Nielsen, Henrik Frystyk (7 June 2002). "Libwww Hackers". World Wide Web Consortium. http://www.w3.org/Library/Collaborators.html.
- ↑ 37.0 37.1 37.2 37.3 37.4 Kahan, José (5 August 1999). "Why Libwww?". http://www.w3.org/Library/Activity.html.
- ↑ Quint, Vincent (10 December 2009). "Amaya Release history". World Wide Web Consortium. http://www.w3.org/Amaya/User/New.html.
- ↑ "HTTP Request fields". Protocols. World Wide Web Consortium. 3 May 1994. http://www.w3.org/Protocols/HTTP/HTRQ_Headers.html.
- ↑ Nielsen, Henrik Frystyk (1 December 1998). "www-lib". Yahoo! Groups. https://groups.yahoo.com/group/www-lib/message/626.
- ↑ Kahan, José (5 August 1999). "Libwww – the W3C Sample Code Library". World Wide Web Consortium. http://www.w3.org/Library/Status.html.
- ↑ Gallagher, James (10 May 2002). "libwww replacement". OPeNDAP. http://mailman.opendap.org/pipermail/opendap-tech/2002-May/000861.html.
- ↑ Gallagher, James (19 June 2002). "libwww v versus libcurl". OPeNDAP. http://mailman.opendap.org/pipermail/opendap-tech/2002-June/000920.html.
- ↑ Paoli, Jean (11–14 December 1995). Rules for extending a WWW client: The Symposia API (Report). World Wide Web Consortium. http://www.w3.org/Conferences/WWW4/Papers/152/. Retrieved 15 August 2010.
- ↑ Luotonen, Ari. "Ari Luotonen". World Wide Web Consortium. http://www.w3.org/People/AriL/CV.html.
- ↑ Berners-Lee, Tim (3 November 1992). "Macintosh Browser". World Wide Web Consortium. http://www.w3.org/History/19921103-hypertext/hypertext/WWW/Macintosh/Overview.html.
- ↑ "libwww - ROS Wiki". http://www.ros.org/wiki/libwww.
- ↑ Ball, Steve (10–13 July 1996) (PostScript). SurfIt! – A WWW Browser. Monterey, CA: USENIX. https://www.usenix.org/publications/library/proceedings/tcl96/full_papers/ball/ball.ps. Retrieved 28 November 2010.
- ↑ Wang, Joseph (1 May 1993). "tkWWW Version 0.7 alpha". http://www.w3.org/History/1993/WWW/TkWWW/Annouce_0.7.html.
- ↑ "WorldWideWeb Source Files". World Wide Web Consortium. http://www.w3.org/History/1991-WWW-NeXT/Implementation/SourceFiles.html.
- ↑ "Readme". evolt.org. http://www.mirrorservice.org/sites/browsers.evolt.org/browsers/worldwideweb/NeXT/README.txt.
- ↑ Nielsen, Henrik Frystyk (4 May 1999). "WebCon: the Libwww Command Line Tool". World Wide Web Consortium. http://www.w3.org/ComLine/.
- ↑ Krol, Ed (September 1992). The Whole Internet User's Guide and Catalog, 3rd printing (February 1993). O'Reilly & Associates. p. 227.
- ↑ Nielsen, Henrik Frystyk (4 May 1999). "Webbot – the Libwww Robot". World Wide Web Consortium. http://www.w3.org/Robot/.
- ↑ Stenberg, Daniel (1 May 2010). "Notes About Libwww compared to libcurl". Haxx. http://curl.haxx.se/libcurl/libwww.html.
- ↑ Smith, Timothy B. (11 September 2007). "Simple HTTP Client without 'libcurl' or 'libwww'". μClinux. http://www.ucdot.org/article.pl?sid=07/09/11/0411252.
External links
- libwww hackers
- The architecture of libwww
- The historic architecture of libwww presented on the Mosaic and the Web conference in Chicago
Original source: https://en.wikipedia.org/wiki/Libwww.
Read more |