ktats****@users*****
ktats****@users*****
2009年 12月 7日 (月) 00:33:35 JST
Index: docs/modules/HTTP-Lite-2.1.1/HTTP/Lite.pod diff -u docs/modules/HTTP-Lite-2.1.1/HTTP/Lite.pod:1.1 docs/modules/HTTP-Lite-2.1.1/HTTP/Lite.pod:1.2 --- docs/modules/HTTP-Lite-2.1.1/HTTP/Lite.pod:1.1 Sun May 4 14:22:40 2003 +++ docs/modules/HTTP-Lite-2.1.1/HTTP/Lite.pod Mon Dec 7 00:33:35 2009 @@ -1,10 +1,10 @@ =pod -=head1 ¼O +=head1 名前 -HTTP::Lite - yÊÈHTTPÀ +HTTP::Lite - 軽量なHTTP実装 -=head1 pá +=head1 利用例 use HTTP::Lite; $http = new HTTP::Lite; @@ -12,76 +12,76 @@ or die "Unable to get document: $!"; print $http->body(); -=head1 ྠ+=head1 説明 - HTTP::LiteÍPerl̽ßÌAPÌÅ®ì·éAyÊÈHTTP/1.1Ì - ÀÅ·B±êÍ\SÌ@\ðà¿ALWPÌãíèÆÈÁÄ - u«·¦éæ¤ÈàÌÅÍ èܹñB©íèÉAHTTPðT|[g - ·é½ßÉA[JCuÉCXg[·éW [ªÅ¬Å é - ±ÆªDܵ¢óµAvZbTªxACPUÉÆÁÄLWPªÇ¢ - óâÆÈçÈ¢óµÅð§ÂàÌÅ ë¤Æl¦Ä¢Ü·B - HTTP::LiteÍAÊíÍLÓÉLWPæè¬Å·B - - HTTP::LiteÍCGIiâmod_perljvOÅÌpÉA é¢Í - HTTP GET¨æÑPOST@\¾¯ªsÂÈæèå«ÈpbP[WÖÌ - ohÉÍzIÅ·B - - HTTP::LiteÍî{IÈPOST¨æÑGET쾯ðT|[gµÜ·B - 0.2.1ÅÍAHTTP::LiteÍHTTP/1.1ðT|[gµA¼Ox[XÌ - o[`EzXgÉsÂÈHOSTwb_[ðó¯üêÜ·B - Á¦ÄAHTTP::LiteÍ»ÝAvLVðT|[gµÜ·B - - 2.0.0ÉÈèAHTTP::LiteÍ»ÝÅÍNGXgf[^ð - ó¯æÁÄ·®ÉÅ«éæ¤ÉAR[obNðT|[g - µÜµ½B±êÍA\ªÈȵÅåÈt@Cð - æ赤ÌÉð§¿Ü·B - - àµAFTPâHTTPSÆ¢Á½æèÈãÌ@\IÈvª êÎA - libwwwperl (LWP)𲺳¢B LWPÍHTTP::LiteæèÀÉÇA - ïIÈpbP[WÅApÅ«éÌÅ êÎHTTP::LiteÌ - ãíèÉg¤×«Å·B + HTTP::LiteはPerlのための、単体で動作する、軽量なHTTP/1.1の + 実装です。これは十全の機能をもち、LWPの代わりとなって + 置き換えるようなものではありません。かわりに、HTTPをサポート + するためにアーカイブにインストールするモジュールが最小である + ことが好ましい状況、プロセッサが遅く、CPUにとってLWPが良い + 候補とならない状況で役立つものであろうと考えています。 + HTTP::Liteは、通常は有意にLWPより高速です。 + + HTTP::LiteはCGI(やmod_perl)プログラムでの利用に、あるいは + HTTP GETおよびPOST機能だけが不可欠なより大きなパッケージへの + バンドルには理想的です。 + + HTTP::Liteは基本的なPOSTおよびGET操作だけをサポートします。 + 0.2.1では、HTTP::LiteはHTTP/1.1をサポートし、名前ベースの + バーチャル・ホストに不可欠なHOSTヘッダーを受け入れます。 + 加えて、HTTP::Liteは現在、プロキシをサポートします。 + + 2.0.0になり、HTTP::Liteは現在ではリクエストデータを + 受け取ってすぐに処理できるように、コールバックをサポート + しました。これは、十分なメモリなしで巨大なファイルを + 取り扱うのに役立ちます。 + + もし、FTPやHTTPSといったより以上の機能的な要求があれば、 + libwwwperl (LWP)をご覧下さい。 LWPはHTTP::Liteより実に良く、 + 包括的なパッケージで、利用できるのであればHTTP::Liteの + 代わりに使うべきです。 -=head1 RXgN^ +=head1 コンストラクタ =over 4 =item new -HTTP::LiteÌRXgN^Å·B±êÍ»ÝÌƱëøð -ÆèܹñB«Ìo[WÌHTTP::LiteÍp[^ð -ó¯üêéŵå¤B +HTTP::Liteのコンストラクタです。これは現在のところ引数を +とりません。将来のバージョンのHTTP::Liteはパラメータを +受け入れるでしょう。 =back -=head1 \bh +=head1 メソッド =over 4 =item request ( URL, CALLBACK, CBARGS ) -wè³ê½URLÅNGXgðú»µÜ·B +指定されたURLでリクエストを初期化します。 -I/OG[ªN±éÆundefªA»¤ÅȯêÎHTTPXe[^XR[hª -Ô³êÜ·B200ÔäÌXe[^XR[hͬ÷ðA300ÍêIÈ -G[ðA400ÍPvIÈG[ðA500ÍT[o[G[ð - çíµÜ·B +I/Oエラーが起こるとundefが、そうでなければHTTPステータスコードが +返されます。200番台のステータスコードは成功を、300は一時的な +エラーを、400は恒久的なエラーを、500はサーバーエラーを +あらわします。 -HTTPXe[^XR[hÌÚ×Í +HTTPステータスコードの詳細は F<http://www.w3.org/Protocols/HTTP/HTRESP.html> -ðQƵľ³¢B +を参照してください。 -CALLBACKp[^ÍAgp³ê½êAóMf[^ÖÌtB^âA -åÈ]Êðnh·éû@ÉÈèÜ·B±êÍÖÖÌ -t@XÅ éKvª èA±ÌÖÍȺðn³êÜ· : -callbackµ½httpNGXgCX^XÖÌt@XA -bodyÉÇÁ³êæ¤ÆµÄ¢éf[^ubNÖÌt@XA -»ê©çCBARGSp[^i½©µçÅ·jB±êÍAhL gÌ -{fBÉÇÁ·éf[^ÖÌt@X©AundefÌÇ¿ç©ð -Գȯê΢¯Ü¹ñB +CALLBACKパラメータは、使用された場合、受信データへのフィルタや、 +巨大な転送量をハンドルする方法になります。これは関数への +リファレンスである必要があり、この関数は以下を渡されます : +callbackしたhttpリクエストインスタンスへのリファレンス、 +bodyに追加されようとしているデータブロックへのリファレンス、 +それからCBARGSパラメータ(何かしらです)。これは、ドキュメントの +ボディに追加するデータへのリファレンスか、undefのどちらかを +返さなければいけません。 -hL gðt@CÉÛ¶·é½ßÌáÅ· : +ドキュメントをファイルに保存するための例です : - # t@Cnh$cbargsÖf[^ð«oµ + # ファイルハンドル$cbargsへデータを書き出し sub savetofile { my ($self,$dataref,$cbargs) = @_; print $cbargs $$dataref; @@ -96,15 +96,15 @@ =item prepare_post ( $hashref ) -POSTtH[ÉÜßéAbv[hµ½¢lÌAzzñÖÌ -t@XðæèÜ·BHTTP{fB𶬵A\bhð -POSTÉÝèµÜ·B +POSTフォームに含めるアップロードしたい値の連想配列への +リファレンスを取ります。HTTPボディを生成し、メソッドを +POSTに設定します。 =item http11_mode ( 0 | 1 ) -HTTP/1.1T|[gÌOn/OffðØè֦ܷBóê½HTTP/1.1T[oÉ -ηé½ßAftHgÅÍoffÅ·B HTTP/1.1T|[gðLøÉ -·éÉÍA1ɵľ³¢B +HTTP/1.1サポートのOn/Offを切り替えます。壊れたHTTP/1.1サーバに +対応するため、デフォルトではoffです。 HTTP/1.1サポートを有効に +するには、1にしてください。 =item add_req_header ( $header, $value ) @@ -112,13 +112,13 @@ =item delete_req_header ( $header ) -HTTPNGXgwb_ðÇÁAíAܽÍ澵ܷB±ÌÖÍ -ÇÌwb_Åàã«ðµÜ·B»ÝÍAHTTP::LiteW [É -æè 究ßHostAUser-AgentAContent-TypeAAcceptA»µÄ -Connectionªè`³êÜ·B HostâConnectionA é¢ÍAcceptÍ -㫵ȢûªÇ¢Åµå¤B +HTTPリクエストヘッダを追加、削除、または取得します。この関数は +どのヘッダでも上書きを許します。現在は、HTTP::Liteモジュールに +よりあらかじめHost、User-Agent、Content-Type、Accept、そして +Connectionが定義されます。 HostやConnection、あるいはAcceptは +上書きしない方が良いでしょう。 -ivLVjFØðñ·éÉÍAȺðg¢Ü· : +(プロキシ)認証を提供するには、以下を使います : use HTTP::Lite; use MIME::Base64; @@ -126,58 +126,58 @@ $encoded = encode_base64('username:password'); $http->add_req_header("Authorization", $encoded); -B<Ó>: »ÝÌÀÅÍAÇÌwb_àPÂÌCX^XɧÀ -³êÜ·B +B<注意>: 現在の実装では、どのヘッダも1つのインスタンスに制限 +されます。 =item body -[gT[o[©çÔ³ê½hL gÌ{fBðԵܷB +リモートサーバーから返されたドキュメントのボディを返します。 =item headers_array -[gzXg©çÔ³ê½HTTPwb_[ðzñÅԵܷB +リモートホストから返されたHTTPヘッダーを配列で返します。 =item headers_string -[gzXg©çÔ³ê½HTTPwb_[ð¶ñ\»ÅԵܷB +リモートホストから返されたHTTPヘッダーを文字列表現で返します。 =item get_header ( $header ) -NGXgwb_[ðzñÅԵܷB +リクエストヘッダーを配列で返します。 -B<Ó>: HTTPNGXgÍwb_²ÆÌCX^XÉÈéæ¤È -§Àª èܹñB±Ì½ßA·×ÄÌwb_ÉPÂÈãÌGgª -üé©àµêܹñB +B<注意>: HTTPリクエストはヘッダごとのインスタンスになるような +制限がありません。このため、すべてのヘッダに1つ以上のエントリが +入るかもしれません。 =item protocol -[gT[o©ç°çê½HTTPvgRW¯ðԵܷB±êÍ -êÊÉAHTTP/1.0©HTTP/1.1ÌÇ¿ç©Å·B +リモートサーバから告げられたHTTPプロトコル標識を返します。これは +一般に、HTTP/1.0かHTTP/1.1のどちらかです。 =item proxy ( $proxy_server ) -ÌNGXgÅgp·évLVÌURLܽÍzXgl[Å·B +次のリクエストで使用するプロキシのURLまたはホストネームです。 =item status -T[o©çÔ³ê½HTTPXe[^XR[hðԵܷB±êÍÊíA -I<request()>ÌÔèlÅ·B +サーバから返されたHTTPステータスコードを返します。これは通常、 +I<request()>の返り値です。 =item status_message -T[o[©çÔ³ê½Xe[^XR[hÌAeLXgÉæéLqð -ԵܷBXe[^X¶ñÍÁèÌtH[}bgÌ çð -ßçêܹñªAå¼ÌHTTPT[o[ÍWIÈLqÌZbgð -g¢Ü·B +サーバーから返されたステータスコードの、テキストによる記述を +返します。ステータス文字列は特定のフォーマットの遵守を +求められませんが、大半のHTTPサーバーは標準的な記述のセットを +使います。 =item reset -±êÍHTTP::LitenhðÄp·éOÉÀsµÜ·B -»¤µÈ¢ÆAÊÍsmèÅ·B +これはHTTP::Liteハンドルを再利用する前に実行します。 +そうしないと、結果は不確定です。 -=head1 á +=head1 例 - # CPANz[y[WÌwb_[Æ{fB[ðæ¾µAoÍ·é + # CPANホームページのヘッダーとボディーを取得し、出力する use HTTP::Lite; $http = new HTTP::Lite; $req = $http->request("http://www.cpan.org/") @@ -193,7 +193,7 @@ print "$CRLF"; print "$body$CRLF"; - # dejanews USENETõGWÉNGXgð|Xg·é + # dejanews USENET検索エンジンにリクエストをポストする use HTTP::Lite; $http = new HTTP::Lite; %vars = ( @@ -208,42 +208,42 @@ print "req: $req\n"; print $http->body(); -=head1 ¢ÀÌ@\ +=head1 未実装の機能 - FTP - HTTPS (SSL) - - Authenitcation/Authorizaton/Proxy-AuthorizationͼÚÍ - T|[gµÄ¨ç¸AMIME::Base64ªKvÅ·B - - _CNgiLocationjÍ©®IÉÇÕ³êܹñB - - multipart/form-dataÌPOSTÍT|[g³êܹñBi±êÍ - t@CAbv[hÉÍsÂÅ·j + - Authenitcation/Authorizaton/Proxy-Authorizationは直接は + サポートしておらず、MIME::Base64が必要です。 + - リダイレクト(Location)は自動的に追跡されません。 + - multipart/form-dataのPOSTはサポートされません。(これは + ファイルアップロードには不可欠です) -=head1 oO +=head1 バグ - åÈNGXgàRAMÉÛ³êÜ·BÂ\«ÆµÄÍ¡ñÌ - HTTP/1.1 chunked transfer[hÌT|[gÅN±è¦Ü·B - ±ÌW [Ì«Ìo[WÅÍAßxÌfBXNÌgpð - ð¯é½ßAt@CnhÖÌNGXg̫ݪ - T|[g³êéŵå¤B - - ³µ®ìµÈ¢HTTP/1.1T[o[Ít@C]ÉAs³mÈ - TCYðèÜ·BHTTP/1.1[hÍ»ÝAftHgÅͳøÉ - µÄ èÜ·B + 巨大なリクエストもRAMに保持されます。可能性としては複数回の + HTTP/1.1 chunked transferモードのサポートで起こりえます。 + このモジュールの将来のバージョンでは、過度のディスクの使用を + 避けるため、ファイルハンドルへのリクエストの書き込みが + サポートされるでしょう。 + + 正しく動作しないHTTP/1.1サーバーはファイル転送時に、不正確な + サイズを送ります。HTTP/1.1モードは現在、デフォルトでは無効に + してあります。 -=head1 ìÒ +=head1 作者 Roy Hooper <rhoop****@theto*****> -=head1 QÆ +=head1 参照 L<LWP> RFC 2068 - HTTP/1.1 -http://www.w3.org/ -=head1 ì +=head1 著作権 Copyright (c) 2000-2002 Roy Hooper. All rights reserved. -±ÌvOÍt[EFAÅ·; Perl»ê©ÌƯ¶¶¾Ì³Å -üÏÆ/ é¢ÍÄzzðs¤±ÆªÅ«Ü·B +このプログラムはフリーウェアです; Perlそれ自体と同じ文言の元で +改変と/あるいは再配布を行うことができます。 =cut