Libwww

libwww (Library World Wide Web) は、Unix系およびWindows向けの高度にモジュール化されたクライアントサイドウェブAPIであり、そのAPIのリファレンス実装の名前でもある。 ウェブブラウザ/エディタ、インターネットボット、バッチツールなど各種アプリケーションに利用可能。完全なHTTP/1.1のキャッシング（英語版）、パイプライニング、POST、Digest認証、deflateなど、libwwwにはプラグイン可能なモジュールがある。 libwwwには、プロトコルに関する実験の叩き台としての役割と、車輪の再発明を防ぐ役割がある。 libcurlはlibwwwの後継とみなされている。 1991年から1992年、ティム・バーナーズ＝リーとCERNにいた学生ジャン＝フランソワ・グロフは World Wide Web の可能性を示すため、オペレーティングシステムNeXTstep向けに書かれた最初のブラウザ WorldWideWeb の各種コンポーネントを移植性の高いC言語で書き直す作業を行った。当初libwwwは Common Library と呼ばれ、独立したソフトウェアとなってはいなかった。一般公開される前にlibwwwは CERN program library (CERNLIB) に組み込まれた。1992年7月、このライブラリはDECnetに移植された。1993年5月の World Wide Web Newsletter でバーナーズ＝リーは、ウェブブラウザ開発を促進するため Common Library をlibwwwと改称し、パブリックドメインで提供すると発表した。当初パブリックドメインではなく GNU General Public License で公開するつもりだったが、GPLにするとIBMのような大企業が利用をためらう可能性があると考え断念した。急いで開発したため、ロバート・カイリューがこれをMacWWWに組み込もうとしたときに問題が生じた。 1994年11月25日 (version 2.17) からヘンリク・F・ニールセン（英語版）がlibwwwの責任者となった。1995年3月21日、version 3.0 のリリースと共に、CERNが完全に手を引き World Wide Web Consortium (W3C) がlibwwwの全責任を負うことになった。1995年以降、Line Mode Browser が独立してリリースされることはなくなり、libwwwのパッケージの一部となった。 W3Cは、HTML3/CSS/PNGといった標準やlibwwwの提供する機能の叩き台兼評価ツールとしてArena（英語版）というウェブブラウザを開発し、beta 3 リリース後にAmayaで置換した。2003年9月2日、W3Cはリソース不足からlibwwwの開発を停止し、その後の開発はオープンソース・コミュニティに期待するとした。 libwwwは、以下の通信プロトコルをサポートしている。 ローカルファイル（URIスキーム） FTP Gopher HTTP 1.1 （永続性キャッシュマネージャとパイプライニング） NNTP Telnet WAIS 他に以下の機能を有する。 OpenSSLを使うことでTLSとSSLを利用可能。 zlibを使うことでgzipの圧縮・解凍が可能。 HTML、 RDF、SGML、XMLの構文解析器とスタイルシートマネージャ SQLデータベース (MySQL) との連携（クローラなどで利用） libwwwは各種プラグインをサポートしている。 19以上のアプリケーションがlibwwwを使用している（いた）。 Agora Arena Amaya Cello CERN httpd サーバ Cygwin Distributed Oceanographic Data SystemsとOPeNDAP GRIF Symposia（HTMLエディタ） Lynx MacWWW Mosaic Robot Operating System TkWeb tkWWW WorldWideWeb（後の Nexus） libwwwには次のアプリケーションが含まれている。 Command Line Tool - ウェブアクセス用の単純なバッチツール。libwwwの使い方を示すためのアプリケーション。 Line Mode Browser Webbot - libwwwを使ったボットの作り方を示すための単純なアプリケーション Mini Server - libwwwを使ったサーバまたはプロキシの作り方を示すための小さなアプリケーション libcurlの開発者らは、libwwwは移植性が低く、スレッドセーフではないし、HTTP認証方式のいくつかも実装していないと批判している。また、プロジェクトによってはlibcurlもlibwwwも重過ぎるという批判もある。 ^ “WEB HISTORY DAY: PIONEERING SOFTWARE AND SITES”. The World Wide Web History Project. 2010年3月28日閲覧。 ^ a b c d e Kahan, José (7 June 2002). “Change History of libwww”. World Wide Web Consortium. 2010年5月30日閲覧。 ^ Bancroft, Vic (4 December 2006). “Changes with libwww 5.4.1”. World Wide Web Consortium. 2010年5月30日閲覧。 ^ a b c d e “W3C libwww libraries”. PhysioNet. Cambridge, MA: University of São Paulo (19 March 2008). 2010年5月30日閲覧。 ^ a b “libwww”. ROS. 2010年6月2日閲覧。 ^ a b c d e Nielsen, Henrik Frystyk (14 may 1998). “W3C Reference Library”. World Wide Web Consortium. 2010年6月27日閲覧。 ^ Moody, George B. (July, 14 2010). “WFDB Programmer's Guide: E. Sources”. 2010年8月4日閲覧。 ^ Kesan, Jay; Rajiv Shah (2003). “Deconstructing Code”. Yale Journal of Law & Technology 6: p. 291. http://papers.ssrn.com/sol3/papers.cfm?abstract_id=597543.  ^ Berners-Lee, Tim (3 November 1992). “Common Library”. World Wide Web Consortium. 2010年6月3日閲覧。 ^ “How the web began”. CERN (2008年). 2010年7月25日閲覧。 ^ Crémel, Nicole (5 April 2001). “A Little History of the World Wide Web”. CERN. 2010年6月2日閲覧。 ^ Berners-Lee, Tim (May 1993). “May World-Wide Web News”. World Wide Web Consortium. 7 June 2010閲覧。 ^ “History of Libwww” (PDF). GoverningWithCode.org. p. 3. 2012年6月15日閲覧。 ^ Berners-Lee, Tim. “Policy”. World Wide Web Consortium. 2010年9月1日閲覧。 ^ a b “Interview Robert Cailliau on the WWW Proposal: "How It Really Happened."”. Institute of Electrical and Electronics Engineers (November 1997). 2010年8月18日閲覧。 ^ a b Kahan, José (2 September 2003). “Libwww - the W3C Protocol Library”. World Wide Web Consortium. 2010年6月2日閲覧。 ^ Kreutzmann, Dr. Helge (6 January 2010). “WWW-Browsers for Linux”. 2010年6月3日閲覧。 ^ Lie, Håkon Wium (15 June 1996). “Arena: Frequently Answered Questions”. World Wide Web Consortium. 2010年6月2日閲覧。 ^ “Welcome to Arena beta-3”. World Wide Web Consortium (16 September 1996). 2010年6月2日閲覧。 ^ Kahan, José (2 September 2003). “Future of Libwww Survey”. World Wide Web Consortium. 2010年6月2日閲覧。 ^ Nielsen, Henrik Frystyk (12 July 2000). “W3C Library Packages and Interfaces”. World Wide Web Consortium. 2010年7月27日閲覧。 ^ “W3C Sample Code Library libwww SSL Transport Wrapper”. World Wide Web Consortium (9 June 2000). 2010年6月28日閲覧。 ^ “W3C Sample Code Library libwww ZLib Streams”. World Wide Web Consortium (24 May 1998). 2010年6月28日閲覧。 ^ “Simple HTML Parser With Text Object Converter”. World Wide Web Consortium (6 January 1999). 2010年6月28日閲覧。 ^ “Declaration of W3C Sample Code HTML MODULE”. World Wide Web Consortium (22 February 1999). 2010年6月28日閲覧。 ^ a b “Declaration of W3C Sample Code XML/RDF Module”. World Wide Web Consortium (18 April 1999). 2010年6月28日閲覧。 ^ “SGML Parser”. World Wide Web Consortium (2 April 1999). 2010年6月28日閲覧。 ^ “Stylesheet Manager”. World Wide Web Consortium (6 January 1999). 2010年6月28日閲覧。 ^ “W3C Sample Code Library libwww SQL Interface”. World Wide Web Consortium (24 May 1998). 2010年6月28日閲覧。 ^ Kahan, José (29 January 2004). “Results of the future of libwww survey”. World Wide Web Consortium. 2010年6月2日閲覧。 ^ Secret, Arthur (12 November 1996). “Agora”. World Wide Web Consortium. 1996年6月6日時点のオリジナルよりアーカイブ。2010年6月20日閲覧。 ^ a b Nielsen, Henrik Frystyk (7 June 2002). “Libwww Hackers”. World Wide Web Consortium. 2010年5月29日閲覧。 ^ a b c d e Kahan, José (5 August 1999). “Why Libwww?”. 2010年6月15日閲覧。 ^ Quint, Vincent (10 December 2009). “Amaya Release history”. World Wide Web Consortium. 2010年5月29日閲覧。 ^ “HTTP Request fields”. Protocols. World Wide Web Consortium (May 3, 1994). 2010年3月28日閲覧。 ^ Nielsen, Henrik Frystyk (1 December 1998). “www-lib”. Yahoo! Groups. 2001年4月18日時点のオリジナルよりアーカイブ。2010年6月15日閲覧。 ^ Kahan, José (5 August 1999). “Libwww - the W3C Sample Code Library”. World Wide Web Consortium. 2010年6月15日閲覧。 ^ Gallagher, James (10 May 2002). “libwww replacement”. OPeNDAP. 2010年6月1日閲覧。 ^ Gallagher, James (19 June 2002). “libwww v versus libcurl”. OPeNDAP. 2010年6月1日閲覧。 ^ Paoli, Jean (11–14 December 1995). “Rules for extending a WWW client: The Symposia API”. World Wide Web Consortium. 2010年8月15日閲覧。 ^ Luotonen, Ari. “Ari Luotonen”. World Wide Web Consortium. 15 August 2010閲覧。 ^ Berners-Lee, Tim (3 November 1992). “Macintosh Browser”. World Wide Web Consortium. 2010年6月2日閲覧。 ^ Ball, Steve (10–13 July 1996). “SurfIt! - A WWW Browser” (PostScript). Proceedings of the Fourth USENIX Tcl/Tk Workshop. Monterey, CA: USENIX. 2010年11月28日閲覧。 ^ Wang, Joseph (1 May 1993). “tkWWW Version 0.7 alpha”. 2010年11月16日閲覧。 ^ “WorldWideWeb Source Files”. World Wide Web Consortium. 2010年6月21日閲覧。 ^ “Readme”. evolt.org. 2010年7月5日閲覧。 ^ Nielsen, Henrik Frystyk (4 May 1999). “WebCon - the Libwww Command Line Tool”. World Wide Web Consortium. 2010年6月27日閲覧。 ^ Krol, Ed, The Whole Internet Catalog User's Guide & Catalog, O'Reilly & Associates, Inc., 1992, Third Printing, February 1993, p. 227. ^ Nielsen, Henrik Frystyk (4 May 1999). “Webbot - the Libwww Robot”. World Wide Web Consortium. 2010年6月27日閲覧。 ^ Stenberg, Daniel (1 May 2010). “Notes About Libwww compared to libcurl”. Haxx. 2010年6月1日閲覧。 ^ Smith, Timothy B. (11 September 2007). “Simple HTTP Client without 'libcurl' or 'libwww'”. μClinux. 2010年6月1日閲覧。 cURL 公式ウェブサイト libwww hackers The architecture of libwww Towards a Uniform Library of Common Code