ゲーム機用ブラウザとCGIの関係


[ トップページ ]

 このホームページは下のバナーにもあるようにジオシティズから無償で提供していただいているわけですが、接続に使用しているプロバイダが基本料金内のサービスとして提供しているサーバースペースにもホームページがあり、一般公開しています。
 私の周辺にはゲーム機用モデムゲーム機用Webブラウザを使用している知り合いが多く、私自身も所持使用しており(ホームページの見た目の確認などにしか使ってないが、緊急時の接続に役に立つと思っている)、その家庭用ゲーム機で自分のホームページを見て気づいたことなどを紹介します。
 他には個人用パーソナルWebサーバーでPerlによるCGIプログラムを作成していて気づいた不可解な動作もお知らせしたいと重います。

謎のHTTP_REFER

 CGIでは良く使うサーバーの環境変数としてHTTP_REFERがあります。この環境変数は現在のページを表示する元となったページを確認するためのものだと思うのですが、このゲーム機用ブラウザは通常期待するような結果を返しません。
 たとえばHTML文書でCGIを実行する<FORM></FORM>文を使用した場合に、実行先CGIプログラムでHTTP_REFERを参照すると実行元HTMLページのURLが入るはずなのですが入りません。
 さらにCGIプログラムで作成されたページ上などで、再読込動作をするとそのページのURLがHTTP_REFERに入力されてしまいます。期待する動作としてはHTTP_REFERを保持したまま再読込動作をしてくれるものだと思います。 実際パソコン用ブラウザではそのような動作をし、HTTP_REFERを返します。

 色々なWebページではCGIプログラムの動作を熟知したものからのイタズラや嫌がらせがあり、伝言板やWebチャットでの書き込み元をCGIプログラムからの内部に限定するためにHTTP_REFERを参照しているものがあります。
 HTTP_REFERを参照しているCGIプログラムをこのゲーム機用ブラウザで実行すると、正確な情報を返していないために書き込みが出来なかったり、ページを表示出来ないことがあります。実際、CGIプログラムを配布しているあるWebページからCGIスクリプトを入手して、そのまま使用するとこのゲーム機用ブラウザでは書き込みができません。

 HTTP_REFERを返すというのはブラウザの追加的規格だと思うのですが、ゲーム機用ブラウザの次のバージョンが出ることがあれば対応してもらいたいものだと思います。

特殊な改行コード

 このゲーム機用ブラウザでは<FORM></FORM>文内での複数行入力可能な<TEXTAREA></TEXTAREA>文での改行コードとして\r(16進数で0D。改行をあらわすコード)を返します。
 マックやUNIXでの改行コードも\rでありこの事自体はたいした問題ではないのですが、一部のCGIプログラムではMS-DOSやWindowsでの改行コード\r\n(16進数で0D0A。改行と行送りのコード)しか改行コードとして認めないものがあり、このゲーム機用ブラウザで改行を入力しながら記入した場合に改行が無視されて、1行の文章として処理されます。 もちろんこういうCGIプログラムではマックやUNIXでの書き込みも1行の文章として処理されます。

 上記のように私の周辺にはこのゲーム機用ブラウザを使用している知り合いが多く、その方たちのためにも配布されているCGIプログラムを進んで改造しました。製作者の方もWindowsだけの狭い世界を見てないで、ほかのOSの改行コードに対応したほうがいいとおもうのですが(最近はこのゲーム機メーカーのWebページにある伝言板に似せて欲しいと依頼があり、その時に改行コード対応の不備に気が付いた様子)

[ トップページ ]

このホームページはにあります。 あなたも無料ホームページはいかが?