#?SuikaWiki/0.9
[1] Protozilla は [[Mozilla]] 拡張ソフトウェアで、 Mozilla 本体が対応していないプロトコルに対応するための枠組みを提供しています。任意の [[URI]] [[scheme]] を比較的簡単に定義できるようになります。
''mozdev.org - protozilla: index''
[3] 昔 (1.2 位の頃) は Mozilla
本体についてきたみたいですが、いま (1.5 とかの頃)
はついていないみたいです。
非標準の URI scheme をどんどん定義できるものを標準で含めておくのはどんなもんかなーと思っていたのですけど、別配布ならまあいいでしょう。
[[#comment]]
* URI scheme
[5]
: [CODE(URI)[[[cgi+]]]] : Local で CGI スクリプトを実行させることができます。
: [CODE(URI)[[[protozilla]]]] : Protozilla 自身の機能
(Protozilla console とか) で使っています。
このほか、例として [CODE(URI)[[[cat+]]:]],
[CODE(URI)[[[myhttp]]:]],
[CODE(URI)[[[redirect]]:]], [CODE(URI)[[[scp]]:]],
[CODE(URI)[[[whois]]:]] の実装が用意されています。
()
[6] [CODE(URI)[+]] で終わる scheme 名だと、
[[HTML]] のリンクのような参照では機能しないようになります。
但し scheme 規定部が空である場合 ([SAMP(URI)[cgi+:]] だけ)
のときはこの規制を受けません。
[7] 実際に scheme を定義する方法については
をご覧下さい。
[[#comment]]
* CGI 機能
[4] [CODE(URI)[[[cgi+]]:]] scheme が予め定義されており、
[[CGIスクリプト]]を実行させることができます。 [[w3m]]
の [[localCGI]] 機能と同じようなものですね。
[[メタ変数]]の実装
(''protozilla/pipella/proto/protozilla.js - view - 1.47'' による):
,メタ変数名 ,値 ,参考
,[CODE(CGI)[[[GATEWAY_INTERFACE]]]] ,[CODE(CGI)[[[CGI/1.1]]]] ,固定
,[CODE(CGI)[[[PATH_INFO]]]] , ,階層的 scheme なら。
,[CODE(CGI)[[[REQUEST_METHOD]]]] ,[CODE(HTTP)[[[GET]]]] ,固定
,[CODE(CGI)[[[QUERY_STRING]]]] ,URI の [CODE(ABNF)[[[query]]]] 部 ,なければ空文字列
,[CODE(CGI)[[[REMOTE_ADDR]]]] ,[CODE(CGI)[127.0.0.1]]
,[CODE(CGI)[[[SCRIPT_DIRECTORY]]]] ,CGI スクリプトのあるディレクトリ ,Protozilla 独自拡張
,[CODE(CGI)[[[SCRIPT_NAME]]]] ,URI の [CODE(URI)[/]] からスクリプトのファイル名まで ,階層的 scheme なら
,[CODE(CGI)[[[SERVER_NAME]]]] ,[CODE(CGI)[[[127.0.0.1]]]]
,[CODE(CGI)[[[SERVER_PROTOCOL]]]] ,[CODE(CGI)[[[HTTP/1.0]]]] ,固定
,[CODE(CGI)[[[SERVER_SOFTWARE]]]] ,[CODE(CGI)[Protozilla/0.1]]
,[CODE(CGI)[[[URI_DATA]]]] ,URI の scheme 規定部分 ,階層的 scheme なら。Protozilla 独自拡張
,[CODE(CGI)[[[URI_HOST]]]] ,URI の [CODE(ABNF)[[[host]]]] 指定 ,あれば。階層的 scheme なら。Protozilla 独自拡張
,[CODE(CGI)[[[URI_PORT]]]] ,URI の [CODE(ABNF)[[[port]]]] 部分 ,陽に陰にあれば。階層的 scheme なら。Protozilla 独自拡張
,[CODE(CGI)[[[URI_SPEC]]]] ,[[URI]] 全体 ,Protozilla 独自拡張
[[#comment]]
* メモ