◆ Webとは
Webサーバとは、クライアントのWebブラウザのリクエストに応じて、HTMLや画像などの表示を提供する
サービスプログラム、そのWebサービスが動作するサーバのことです。Webサービスを提供する代表的な
サーバソフトウェアには、オープンソースであるApache(アパッチ)とNginx(エンジンエックス)と
マイクロソフト社のIIS(アイアイエス)があります。IISはWindows Serverに標準で搭載されています。
WebサーバがクライアントにWebサービスを提供する時に使用されるプロトコルはHTTPです。HTTPでは、
データを要求するHTTPリクエストと、それに応答し要求されたデータを送り返すHTTPレスポンスの2つの
やりとりを繰り返すことで、Webページを表示させています。
シーケンス |
説明 |
1 |
ユーザがWebブラウザを起動させて、URLを入力してEnterキーを押す。
|
2 |
Webブラウザは指定したWebサーバにHTTPリクエストを送信して、Webページのデータを要求。
|
3 |
Webサーバは、Webブラウザから受信したHTTPリクエストを解析。
|
4 |
Webサーバが、Webブラウザに要求されたデータをHTTPレスポンスとして返信。 |
5 |
Webブラウザは、受信したデータを解析してWebページとして表示。 |
◆ HTTPリクエスト:URLとメソッド
WebブラウザからWebサーバにアクセスする際に送信されるHTTPリクエストにはURLとメソッドの情報が
含まれています。Webサーバにアクセスするために、WebブラウザでURL(Uniform Resource Locators)
を入力して、アクセスしたいファイルやプログラムなどを指定します。そのURLは以下の書式で入力します。
URLの構成 |
説明 |
スキーム |
アクセスするプロトコルを指定する部分。HTTPによるWebアクセスを行うためには「 http 」と入力。
HTTPにSSLを使用した暗号化によるWebアクセスを行うためには「 https 」と入力。ポート番号443。
|
ホスト名 |
アクセスするホスト名を指定する部分。DNSではFQDN(ホスト名+ドメイン名)と呼ばれている部分。
|
パス |
Webブラウザで表示させたいWebページのファイル名を指定する部分。ファイル名を指定しない場合は
デフォルトで「index.html」のファイル名が呼び出される。つまり以下は同じWebページが表示される。
「 http://www.infraexpert.com/ 」 = 「 http://www.infraexpert.com/index.html 」
|
※ 当サイトのURLを「 http://〜 」で入力しても、「https://〜」にリダイレクトさせるようにWebサーバで設定しています。
URLを入力してWebサーバにアクセスし、メソッドによりWebサーバに対して何をしたいのかを示します。
メソッドには以下のような種類があります。
メソッドの種類 |
説明 |
GET |
データを取得することをWebサーバに要求
|
HEAD |
データそのものは要求せず、メッセージヘッダだけを取得することをWebサーバに要求
|
POST |
Webサーバに、データを送信
|
PUT |
Webサーバに、ファイルをアップロード
|
DELETE |
Webサーバ上にあるデータを削除することを要求 |
CONNECT |
例えばプロキシサーバなどに、トンネルの確立を要求 |
◆ Webサーバ:静的コンテンツと動的コンテンツの処理
Webページには、静的コンテンツと動的コンテンツの大きく2種類があります。
静的コンテンツでは、WebブラウザからのHTTPリクエストのパスで指定された例えば html ファイルが
そのまま応答データとして送信されます。現在お読み頂いているこのページは静的コンテンツとなります。
動的コンテンツでは、WebブラウザからのHTTPリクエストの度に生成されて表示されるWebコンテンツ
内容が異なります。動的なコンテンツの代表例として、検索サイトやショッピングサイトなどがあります。
Webページ |
説明 |
静的コンテンツ |
Webブラウザからの要求内容に関係なく、同じ内容が表示されるWebコンテンツ
|
動的コンテンツ |
Webブラウザから受信したリクエストに応じて、表示内容が変化するWebコンテンツ
|
動的なコンテンツを作成する前提として、Webサーバ上で指定されたスクリプトが実行できる動作環境で
ある必要があります。Webサーバ上で動的コンテンツを実現するための技術としてPerl、PHP、ASP.NET
などがあります。
従来は、動的コンテンツを作成するための技術として、Perlのプログラミング言語で作成されたCGIを使用
することが多くありましたが、CGIの実行や処理はWebサーバ側で実施されて負荷が高いことが問題でした。
現在は、ページの生成処理をクライアントで実行させるWeb API(Application Programming Interface)
が主に使用されており、WebサーバはWeb APIに対するHTTPリクエストをXML形式またはJSON形式などで
受け取ると処理結果を同じ形式でHTTPレスポンスで返し、Webブラウザは動的なコンテンツを生成します。
|