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" などでアクセスできます.

確認せずにファイルを上書きするので, システムファイルなどの重要ファイルを扱う場合には 十分ご注意ください.最悪システムを破壊してしまいます.