WEBサーバーソフトとは
前回の記事→TCP/IPとは(UDP)で説明した通りWebサーバ上ではポート80番とポート443番で通信するWebサーバーソフトが稼働しています。
ではWebサーバーソフトは、一体どのような処理をしているのでしょうか。
HTTPを使った通信
WebブラウザとWebサーバーとは、「HTTP(HyperText Transfer Protocol)」という定められた方式で通信します。
MEMO
インターネットで使われている通信方式はほとんど全てIETFという団体が公開している「RFC(Request For Comment)」というドキュメントとしてまとめられています。RFCにはドキュメント番号が付けられており、HTTPは「RFC 2616」です。これを見ればどのような形式でデータが送受信されているのかが全てわかります。RFCは、http://www.ietf.org/rfc.htmlなどで参照できます。
さて、私たちが「http://www.it-stepup.com」というURLをWebブラウザに入力したときにWebブラウザは
GET /index.html HTTP/1.1
Host: www.its-stepup.com
という2文を送信します。これはHTTPの規約でそう決まっているからです。
1行目はサーバへの要求文です。GETから始まるこの文は「GETメソッド」と呼ばれ、「指定されたパスのデータが欲しい」ということを意味します。
末尾に指定している「HTTP/1.1」は、HTTPのバージョン番号です。この例ではバージョンが「1.1」であることを示します。
2行目は、要求したいホスト名を指定するヘッダ情報です。HTTP1.1ではHostヘッダが必須ですが、それ以外にも「ブラウザの種類」「要求したいデータ」のほか「Cookie(クッキー)」と呼ばれる、ユーザを特定する小さな情報が追加されることもあります。
「Cookie」については別記事で紹介します。
COLUMN バーチャルドメイン
1台のWebサーバーで、複数のドメインのコンテンツを提供するようにも構成できます。つまり「www.it-stepup.com」「www.example.com」など異なるドメインを1台のWebサーバーで運用できます。このような構成を「バーチャルドメイン」と言います。
バーチャルドメイン構成では、クライアントから送信されてきた「Hostヘッダ」によって、どのコンテンツのデータを見せるのかを振り分けます。
Webサーバーの応答
Webサーバー側で動作している「Webサーバーソフト」は、このように送信された「GETメソッド」を受け取り解釈します。
例えば、「GET /index.html HTTP/1.1」という要求があったなら、サーバ上の「index.htmlファイル」を読み込んでその内容を返します。
このような挙動によって、クライアントはindex.htmlファイルの内容を見ることができます。
Webサーバーの代表「Apache」
Webサーバーソフトで圧倒的なシェアを占めているのが「Apache(アパッチ)」(http://www.apache.org/)です。
Apacheはオープンソース(Open Source)のソフトウェアで、無償で利用できます。最近は同じくオープンソースの「nginx(エンジンエックス)」が使われることが多くなっています。
またWindows Serverの場合には標準で含まれている「IIS(Internet Infomation Services)」が使われることがほとんどです。
どのWebサーバソフトでも、HTTPという規約に準じているので、動作の違いはありません。
しかし、その性能と特徴は大きく異なります。また、Webサーバーと連携して動かせる「Webプログラム」の種類が異なることもあります。
ソフト名 | 概要 |
Apache | 多くのWebサイトで使われているWebサーバー |
nginx | 高速で小メモリなWebサーバー。パフォーマンスを重視するサイトで使われている |
IIS | Windows Server上のWebサーバー。.NET Frameworkで記述されたプログラム(VB.NETやC#で書かれたプログラム)を実行できる |
まとめ
いかがでしたでしょうか、段々と基本的な知識がついてきたのではないのでしょうか、記事を理解すればスタートラインが全然違います。
私も未経験で入社したので他の人との差が最初はとてもしんどいです。そして基本的なところは教える人や企業によって若干のズレがあることが多いです。私もしかりですが・・・w
私の記事ではできるだけまんべんなく基本的な知識を記述して行くつもりですので。
よかったらお付き合いください。
ではでは