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