Updated on 1998/5/9
italk+ 0.74以降には、WWWブラウザなどからのHTTPアクセスへの対応として、 極めて簡易なHTTPサーバー機能が実装されています。 ここでは、italk+ 0.80以降のHTTPサービスについて説明します。
italk+ 0.80以降では、通常のitalkのポート(デフォルトは12345)にHTTPでアクセスすることにより、 ログや伝言ファイルなどを取得することができます。 また、HTTPアクセスを他のURLにリダイレクトしたり、拒否することもできます。
HTTPサービスを提供するには、起動時オプション-hを指定し、 index.shtmlをログディレクトリに置きます。
HTTPアクセスをリダイレクトするには、-rでリダイレクト先URLを指定します。
HTTPアクセスを拒否するには、-hと-rを指定せず、 refuse.shtmlを置きます。
各.shtmlファイルの内容は必要に応じて適宜変更してもかまいません。 たとえば、WWW→italkゲートウェイが用意されている場合には、 そちらにアクセスするよう指示するとよいでしょう。
なお、.shtmlファイルおよび一般ユーザーに実行許可のある.htmlファイルについては、 以下のようなSSIもどきの置換が行われます。
<!--#echo var="SERVER_NAME" --> → ホスト名 <!--#echo var="SERVER_PORT" --> → ポート番号 <!--#echo var="SERVER_ADMIN" --> → 管理者のメールアドレス
HTTPサービス提供時は、ポート12345へのHTTPアクセスにより、 ログディレクトリ直下のファイルのうち、 一般ユーザーに読み出し許可があるものを取得することができます。 これに該当するのは、ログファイル(*.italk)、表伝言ファイル(*.msg)、 アナウンスファイル(*.ann)などです。 裏伝言ファイル(*.umsg)、ユーザー情報ファイル(wtmp)などは該当しません。
URLは以下のようになります。
案内 http://ホスト名:12345/ ログファイル http://ホスト名:12345/yyyymmdd.italk
yyyymmdd.italkの他にtoday.italkとyesterday.italkが使えます。
HTTPアクセスリダイレクト時は、ポート12345にHTTPアクセスがあると、 URLにかかわらず-rで指定したURLにリダイレクトします。
HTTPアクセス拒否時は、ポート12345にHTTPアクセスがあると、 URLにかかわらずログディレクトリのrefuse.shtmlを送ります。 これにより、誤ってHTTPアクセスされてもitalkの利用者には影響ありません。
italk+は、HTTP 0.9とHTTP 1.0の一部をサポートします。 使用できるメソッドはGETとHEADだけです。 ハンドル入力時に"GET /"または "HEAD /"で始まる行が入力されるとHTTPアクセスとみなされます。 リクエストのURI中の%は解釈しません。
レスポンスでは、ファイルの種類によって 適宜フィールドを付加します。 HTML中の<meta>タグは解釈しません。 返されるステータスコードとその原因は以下の通りです。
200以外のステータスは、その意味を簡単に説明するHTMLとともに送られます。
利用者が、HTTPサービスをもたない古いバージョン(0.73以前)のitalk+に誤ってHTTPアクセスすると、 そのサーバーの他の利用者に迷惑となります。 HTTPサービスを提供していることが確実なサーバーにのみ HTTPアクセスするよう周知徹底してください。
HTTPサービス提供時は、ログディレクトリ直下で読み出し許可のあるファイルはすべて取得可能です。 取得されると困るファイルは、置かないようにするか、 読み出し許可を落としてください。
HTTPサービスの機能は極めて限定されています。 トラフィックが多い場合や認証を必要とする場合など、 本格的なHTTPサービスを必要とするときは、 一般のHTTPサーバー(Apacheなど)を別途運用してください。
Windowsでは、デフォルトで.MSGがExchangeに関連付けされており、 Internet Explorerで表伝言ファイルを見ようとするとExchangeが起動してしまいます。 あらかじめ関連付けを削除しておいてください。