Webアプリ開発事始 第7回

Webアプリケーションの仕組みとデータベースの扱い 長谷川裕行
有限会社 手國堂

UNIXの流儀

WindowsとUNIXでは、設定手順や個々の操作方法は異なります。しかし、WebやFTPなどTCP/IPネットワークのサーバーとなると、WindowsにもUNIXの流儀が適用されます。


- フォルダとディレクトリ -

Webサーバーには、クライアントに公開するHTMLファイルが保存されます。ファイルの保存場所は、Windowsではフォルダと呼ばれますが、UNIXではディレクトリ(directory)と呼ばれ、TCP/IPネットワークでもディレクトリという呼び方をされます。

WebサーバーのHTMLファイルを保存するディレクトリを、ホームディレクトリあるいはパブリッシュディレクトリといいます。

httpプロトコルによるWebサービスでは、ホームディレクトリが起点となります。Webサーバーには、ホームディレクトリ以外にもたくさんのディレクトリがありますが、クライアントがhttpプロトコルでサーバーに接続した場合、クライアントに公開されるのはホームディレクトリから下のディレクトリだけとなります。

クライアントからWebサーバーに接続したユーザーは、ホームディレクトリから上の階層に移動することはできません。


- UNIXのディレクトリ構造 -

ここで、UNIXの一般的なディレクトリ構造を見ておきましょう。極めて簡略化していますが、以下のようになっています。

 /
   /root
   /home
     /hasegawa
     /tamura
       :
     /httpd/html
   /etc
     /rc.d
       :
   /bin
   /usr
     /bin
     /local
       :

/はルートディレクトリと言い、一番根本にあるディレクトリです。すべてのディレクトリはここを起点として作成されます。/の下には、root、home、etc、usrなどのサブディレクトリが存在します。ディレクトリ“root”はコンピュータの最高権限を持つユーザーrootの使用するディレクトリで、先に説明した/のルートディレクトリとは異なります。

homeの下には、root以外のユーザーの名前が付いたディレクトリが作成されます。これを(各ユーザーの)ホームディレクトリと呼びます。先ほど説明したように、Webサービスで使用するHTMLファイルを保存したディレクトリもホームディレクトリと言いますが、ユーザーのホームディレクトリはそれぞれのユーザーが操作を行う際の起点となるもので、Webの場合とは意味が異なります。

混同を避けるため、Webの場合は「Webのホーム」などと表現します。UNIXで「ホームディレクトリ」と言えば、通常は「ユーザーごとの操作の起点となるディレクトリ」を指します。


- 区切り記号とパス -

UNIXではディレクトリを/記号で区切って指定します。Windowsの¥記号と同じ意味です。¥記号は当然ながら日本語版だけのもので、英語版では\記号となっています。\記号に該当する文字コードの文字が、日本語版ではたまたま¥記号に割り当てられていたので、区切りに通貨記号を使うことになってしまったのです。

UNIXで定番と言えるWebサービスソフトApacheの場合なら、Webのホームディレクトリは/の下の
  サブディレクトリhomeの下の
  サブディレクトリhttpdの下の
  サブディレクトリhtml
となります。この中に“index.html”を保存したら、Webサーバーでは

  /home/httpd/html/index.html

という形でファイルの場所を示せることになります。

しかしクライアントからブラウザを開いてWebサーバーに接続すると、“/home/httpd/html”から下の階層だけしかアクセスできなくなります。

例えばクライアントのブラウザから

  http://www.technido.co.jp/

とURLを指定した場合、technido.co.jpドメインに所属するコンピュータ“www”の“/home/httpd/html”ディレクトリが、クライアントのアクセスできるディレクトリとなります。

このように/などの区切り記号を使ってディレクトリやファイルの場所を示したものを「パス(path)」と言います。


- TCP/IPはUNIXの流儀 -

ディレクトリの下には、さらにサブディレクトリを作成できます。例えば、“/home/httpd/html”の下にimagesディレクトリを作り、そこに画像ファイルを保存したら、“/home/httpd/html”に保存されたHTMLファイルでは

  <IMG src = "images/title.gif">

のように画像ファイルを指定できます。

WindowsのIIS(Internet Information Services)では、

  \InetPub\wwwroot

が標準のホームディレクトリとなります。Windowsでは、これをパブリッシュディレクトリと呼んでいます。

OSやWebサービスソフトによって、標準のホームディレクトリは異なります。また、それぞれのソフトの設定によって、変更することも可能です。設定を変更できるのは、当然サーバーの管理者(UNIXではroot、WindowsではAdministrator)権限を持つユーザーだけです。

先ほどの画像を保存するディレクトリも、Windowsなら“\InetPub\wwwroot\images”というフォルダ指定となりますが、HTML形式では上記のように区切りに/記号を使います。つまりTCP/IPネットワークでは、すべてUNIXの流儀でファイルを指定するということです。


- やり取りは単純 -

クライアントのブラウザにURLを入力すると、クライアントはWebサーバーに対してファイルの送信を要求します。ファイル送信の要求を受けたWebサーバーは、Webホームディレクトリに保存されたHTMLファイルを読み込み、その中身をクライアントに送信します。

クライアントはWebサーバーから送られてきたHTMLデータを受け取って、ブラウザがHTMLの内容(タグによる表示指定)に従ってウィンドウ内にテキストや画像などを表示します。

言ってみれば、Webのやり取りはこれだけの単純なものです。ユーザーがブラウザのウィンドウ内に表示されたリンクをクリックすると、そこでクリックされたリンクに設定されたURLの送信要求が、Webサーバーに送られます。あとは同じことの繰り返しです。

ブラウザの機能もWebサーバーの機能も、「単にウィンドウ内に情報を提示する」という動作だけを考えれば、実に単純なのです。

Webアプリケーションとして複雑な処理を行わせる場合でも、ここで説明したWebサーバーとクライアントとの関係は変わりません。

図1:Webサーバーの役目は意外と単純



- 目次 -
トップページ
Webアプリケーションの基本を押さえる
UNIXの流儀
フォルダとディレクトリ
UNIXのディレクトリ構造
区切り記号とパス
TCP/IPはUNIXの流儀
やり取りは単純
サーバーサイド・アプリケーション
クライアントサイド・アプリケーション
Webアプリケーションとデータベース
あとがき

Copyright © MESCIUS inc. All rights reserved.