(1) Webデータスペースの制限
htmlや画像ファイルを置くディスクの容量を制限します.ディスクの容量を制限することで,多くのユーザーを1つのサーバコンピュータに収容してコストを削減します.
(2) 外部ソフトウェアの制限
CGIソフトウェアの使用を禁止したり,プロバイダが準備したものだけに制限します.プロバイダが準備するものとしては,カウンタやメール送信機能などといった単純なものが提供されています.掲示板機能やチャット機能はサーバコンピュータにかかる負荷が大きいため,使用が制限されていることがあります.このほか,SSIやPHPといったCGIとは異なったしくみの外部ソフトウェアも通常は使用できません.
- 〔図5〕掲示板システムのしくみ
掲示板機能のしくみ
- 外部ソフトウェアの例として,しくみが簡単でかつ使われた経験が多いと思われる掲示板機能がどのようなしくみでできているのかを解説します.
掲示板システムの概略を図5に示します.これまで説明してきたWebサーバとWebクライアント,CGIを使用する外部ソフトウェア(掲示板ソフトウェア)に加えて,掲示板に書き込まれた情報を保持するデータファイルからなります.
まず,発言を行わずに掲示板を閲覧している状態では次のように動作します.WebクライアントからWebサーバに対して,掲示板ソフトウェアにアクセスが行われます.ここでは通常のCGIを経由した外部ソフトウェアによる,動的ページ生成のしくみが使われます.掲示板ソフトウェアでは,発言データファイルを読み込んで,最近の発言を抽出します.次に発言をHTMLの形式に成形します.この成形のしかたによって,掲示板としての見やすさが決定します.生成されたHTMLは,CGIを経由してWebサーバに返され,Webクライアントに返送されます.
次に発言を行うときは,Webクライアントにすでに表示されている掲示板の入力欄に発言が入力されます.この入力された発言は,送信ボタンによってWebクライアントからWebサーバに送られます.これは前回解説したURLの一部に引数として組み込まれます.Webサーバから起動された外部ソフトウェアは,CGI経由で発言を受け取ります.まずこの発言をデータファイルに追加します.そのあとは,発言を行わないときと同じようにデータファイルから発言の一覧を抽出して,HTMLに成形し,Webクライアントに返送します.
なお,ここで注意する点があります.それは発言をデータファイルに書き込む作業です.同時に1つの外部ソフトウェアしか起動しなければ,データファイルに書き込みを行うソフトウェアも1つです.もし2つ以上の外部ソフトウェアが起動したとすると,同時にデータファイルへの書き込み作業を行う可能性があります.同時に2つ以上のソフトウェアが,1つのファイルに書き込みを行った場合,正しく2つの書き込みが行われる保証はありません.つまり,図6のように2つの発言が混ざって記録されてしまったり,最悪の場合はファイルが消えてしまうかもしれません.
〔図6〕同時にアクセスすることによって起こる不都合