URL の指定方法
このweb server では一般の (CGIなどの) 機構とは
異なった機構を取っています.
その中で動的コンテンツの URL の指定方法について説明します.
まず,ローカルのディレクトリ構成を
ご理解ください.
このページにワークスペースという
言葉がでてきます.
はじめに:
一般の web server では URL の中のパス名がそのまま
サーバー内部のパス名に相当しています.
CmdHttpd ではこれが多少違います.
http://[client-mathine]/[what]/[path]?[args]
というようになってて,まずはじめの [what] 部分で
何をするか(実行するか,閲覧するか等)を指定し,
その後ファイルの所在地に
対応するパス [path] が続きます.
最後に,引数が必要な場合には "?" の後に [args]が続きます.
標準入出力タイプでコマンドを実行したい場合:
http://[client-machine]/exec/[command]?[arguments]
[command] には実行したい実行ファイル名を入れます.
[arguments] には実行ファイルに渡す引数を羅列します.
ただし,エスケープに相当する %XX の部分はデコードした後,
処理されます.
引数が複数必要な場合などは "%20" などの空白で区切ってください.
[command] として利用できるのは,
・パスの通っているもの (ping.exe など)
・相対パスで指定するならワークスペースにあるもの
・絶対パスで指定できるもの (c:\winnt\notepad.exe など)
が対象です.
実行時には,ワークスペースをカレントディレクトリとして
実行しますので,ファイルの上書き消去にご注意ください.
コマンドに与える標準入力等に関しては,
扱えるコマンドのページをご覧ください.
また,
サービスの実行権限(大抵は管理者権限)で実行するので,
最悪の場合システムを破壊してしまう可能性があるので,
十分注意してコマンドを送ってください.
標準入出力タイプでコマンドを実行したい場合(perl 専用):
http://[client-machine]/perl/[script]?[arguments]
perl スクリプトを実行することが多いと考えていますので,
専用のものを設けました.
パスが通っていて "perl.exe" のみで実行できる環境である
必要があります.
perl はActiveState の
ものを推奨します.
スクリプトは [script].pl のファイル名であると想定し,
perl.exe [script].pl [arguments]
という形で実行します.
当然,
http://[client-machine]/exec/perl.exe?[script].pl%20[arguments]
で実行するのと同じです.
GUIタイプでコマンドを実行したい場合:
・ユーザーに全く見せずに実行したい場合には,
http://[client-machine]/kick/[command]?[arguments]
・ユーザーの作業画面にウィンドウを表示したい場合には,
http://[client-machine]/guikick/[command]?[arguments]
・ログイン画面,Ctrl-Alt-Delを押したときの画面に表示したい場合には,
http://[client-machine]/notify/[command]?[arguments]
としてください.
ファイルを閲覧したい場合:
ファイルをただ単に閲覧したい場合には,
http://[client-machine]/view/[file]
で閲覧できます.
ただし [file] はワークスペースからの
絶対パスもしくは相対パスのどちらでも指定できます.
たとえば,ワークスペース内の foo.txt なら "/view/foo.txt" で,
絶対パスなら "/view/c:/boot.ini" などでアクセスできます.
ファイルをアップロードしたい場合:
http://[client-machine]/upload/[file]
に POST method でアクセスしてください.
POST method で渡される内容全体を全く解釈せずに
ファイルの内容としますので,
通常のブラウザからの書き込みではファイルのアップロードは
無理なので,このようなスクリプトで
アップロードしてください.
ただし [file] はワークスペースからの
絶対パスもしくは相対パスのどちらでも指定できます.
たとえば,ワークスペース内の foo.txt なら "/view/foo.txt" で,
絶対パスなら "/view/c:/tool/test.exe" などでアクセスできます.
確認せずにファイルを上書きするので,
システムファイルなどの重要ファイルを扱う場合には
十分ご注意ください.最悪システムを破壊してしまいます.