主要サーバ解説|ウェブサーバ|トラムシステム
PC・スマートフォン等のデバイスは、各種サーバーが提供しているサービスを活用しています。サーバーの種類やウェブサーバーの仕組みについて説明します。
目次
サーバーとは
サーバーとはクライアントへサービスを提供するコンピューターのことを差します。サーバーとクライアントはプロトコルという通信の規約に則り通信を行います。
クライアントは主にPCやスマートフォンになりますが、サービスによってはサーバもクライアント側になります。様々なサーバーを紹介します。
主なサーバーとその機能
・DNSサーバ
管理しているドメインのホストサーバーに対するIPアドレスを主に管理しています。
ホスト名は人間が覚えやすいように任意の英数字を用いていますが、ホストのIPアドレスを指定しないと通信は規約上利用できません。
クライアントはホストサーバのIPアドレスをDNSサーバに問い合わせをします。
キャッシュサーバー
社内のクライアント用のサーバー。管理しているドメインには社内のクライアントのみ利用できるサーバの情報が登録されております。
管理していないドメインの問い合わせについてはキャッシュサーバーが、インターネット上のDNSサーバに問い合わせをし、クライアントに回答します。
コンテンツサーバー
外部のクライアント用のサーバー。DMZに配置し外部に公開しているドメイン内のサーバーに関する問い合わせに対して回答します。
DHCPサーバ
IPアドレスを持たないPCやスマートフォン等の端末がサーバーに、使用可能なIPアドレスを要求します。要求を受けたDHCPサーバは使用していないIPアドレスを回答します。回答を受けた端末は自動でIPアドレスを登録するためユーザーが設定する手間が省けます。サーバーにより払い出されたIPアドレスはリース期間があります。端末はリース期間が切れる少し前にDHCPサーバへ再要求することで同じIPアドレスを利用し続けることができます。リース期間内に再要求ができなかった場合、使用していたIPアドレスは別の機器に払い出す可能性があります。
各端末が保持しているMACアドレスとIPアドレスを紐づて登録することも可能で登録しているMACアドレスの端末は常に同じIPアドレスを利用できます。
これにより、IPアドレスを設定せずとも同じIPアドレスを利用し続けることが可能です。サーバーのIPアドレスは通信を安定させるために常に同じIPアドレスを利用する必要があります。そのためDHCPサーバーに設定している払い出すIPアドレス群の範囲外のIPアドレスをサーバーに設定します。
NTPサーバー
NTPサーバーとやりとりすることで、クライアントのシステムクロックを正しい時刻に調整することが可能となります。NTPサーバーは階層構造となっており最上位は原子時計やGPSなどで時計を正確に自己調整できる特殊な機材となっております。
ウェブサーバーとは
グループウェアの利用や外部のウェブページにアクセスする際のクライアント・サーバ間のやりとりについて説明します。ウェブサーバーの目的は、サーバーからファイルを取得しWebページを閲覧することです。その際、次の3つの技術を利用します。
HTTP(HyperText Transfer Protocol)
ハイパーテキストとは画像の埋め込みや他のファイルへのリンクの記載が可能になるテキストのことで、通常のテキス トファイルでは不可能な文書です。サーバ・クライアント間でHTTPを用いてやりとりを行います。
URI(Uniform Resource Identifier)
リソースの場所を記述するために使用されます。 HTTPでのURIの記述は下記になります。
http://ユーザー名:パスワード@サーバードメイン名:ポート番号/リソースへのパス
『ユーザー名:パスワード』は省略可能です。『ポート番号』はWell-knownポートに限り省略可能となります。
HTML(Hyper Text MarkUp Language)
ハイパーテキストの記述言語になり、Webページを作成するために開発されました。HTMLタグを用いることで見栄えや タイトルを文書の中で意味を持たせることができます。
HTTPリクエスト・レスポンス
クライアントからサーバーへURIのリソースのリクエストを送信し、ウェブサーバーはリクエストされたURIのリソース をレスポンスとして返します。リクエストとレスポンスのメッセージは『開始行』『メッセージヘッダ』『ボディ』で 構成されますが通信の内容は種類により異なります。下記を例にして説明します。
HTTPリクエスト
GET / HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Accept-Language: ja-JP
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
Accept-Encoding: gzip, deflate
Host: XXX.XXX.XXX.XXX
Connection: Keep-Alive
・開始行
GET :リソースの取得の要求
/ :リクエストURI(ホームディレクトリからの絶対パス)
HTTP/1.1 :バージョン
・メッセージヘッダ
Accept :ブラウザが使用可能なMIMEのタイプ
Accept-Language:ブラウザが使用可能な言語
User-Agent :クライアントのOS、ブラウザの種類、ブラウザのバージョン
Accept-Encoding :サーバーとやりとりするデータの圧縮する際、サポートしている圧縮アルゴ
リズム
HOST :宛先サーバーのドメイン名
Connection :Keep-Aliveを指定することにより、使用したコネクションを継続して利用可
能でこれにより新規に接続するのが不要
・ボディ メッセージ本体
HTTPレスポンス
HTTP/1.1 200 OK
Server: Apache/2.2.15 (CentOS)
Content-Length: 4961
Connection: close
Content-Type: text/html; charset=UTF-8
・開始行
HTTP/1.1 :バージョン
200 :ステータスコード(200は正常にリクエストを受け付けたことを意味する)
OK :応答フレーズ(OKは正常にリクエストを受け付けたことを意味する)
・メッセージヘッダ
Server :サーバーのソフトウェアの情報
Content-Length :ファイルの長さをバイト単位で示す
Connection :クライアントからのConnectionに対する応答
Content-Type :コンテンツの形式、文字コード
・ボディ メッセージ本体
バーチャルホスト
1つのサーバーで複数のドメインを運用することができます。HTTPリクエストのメッセージヘッダのHOSTにあるドメインの情報により、ドメイン別のリソースを応答することができます。
親和性の高いサーバー
ウェブサーバーは他のサーバ―と連携をとることで、ユーザはより発展したウェブページを閲覧することができます。他のサーバと連携を取っているWeb3層アプリケションについて説明します。
Web3層アプリケーション
役割
プレゼンテーション層:ウェブサーバー
クライアントからのHTTPリクエストを受け取り、クライアントへコンテンツを返します。コンテンツの種類は下記のとおりになります。
・静的ファイル
HTML、CSS、Javascript、画像ファイル等で構成されるページ。サーバー内のディスクに保存されている。
・動的ファイル
クライアントのリクエスト毎に作成され、クライアント・時間帯によって内容が変わります。アプリケーションサーバーへ処理要求を依頼し、処理結果をクライアントへコンテンツを返します。
アプリケーション層:アプリケーションサーバー
ウェブサーバから受ける処理要求をもとにJava、Ruby、PHPを実行し処理を実行します。動的ファイル作成するにあたり必要であればDBサーバへデータ要求をし、返ってきたデータを加工します。
データベース層:データベースサーバー
データベースサーバーは、データが大量に保管されているストレージにデータの書き込みや情報を引き出したりします。
・メリット
セキュリティの高さがメリットになります。Web3層構造により各種サーバーが独立しておりデータベースサーバーの前にウェブサーバー、アプリケーションサーバー、セキュリティ製品を配置できます。また、変更・更新が単体のサーバーで済むので運用作業が複雑になりません。
・デメリット
各サーバにインストールする物理サーバを用意する必要があるためコストがかかります。
まとめ
クライアント・サーバー間の通信は、ユーザーには目に見えない部分で様々な通信を行っています。DHCPサーバーからIPアドレスを取得し、DNSサーバーにて名前解決を行います。ウェブサーバーは単体でも稼働できますが、連携を取ることで発展したページを提供することができます。

WRITER
トラムシステム(株)メディア編集担当 鈴木 康人
広告代理店にて、雑誌の編集、広告の営業、TV番組の制作、イベントの企画/運営と多岐に携わり、2017年よりトラムシステムに加わる。現在は、通信/音声は一からとなるが、だからこそ「よくわからない」の気持ちを理解して記事執筆を行う。