SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

直近開催のイベントはこちら!

EnterpriseZine編集部ではイベントを随時開催しております

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けの講座「EnterpriseZine Academy」や、すべてのITパーソンに向けた「新エバンジェリスト養成講座」などの講座を企画しています。EnterpriseZine編集部ならではの切り口・企画・講師セレクトで、明日を担うIT人材の育成をミッションに展開しております。

お申し込み受付中!

翔泳社の本

ITインフラのキホン:3階層型システムを見てみよう【中編】


 前回は、書籍『絵で見てわかる ITインフラって何だろう 新装版』(翔泳社 山崎 泰史、三縄 慶子、畔勝 洋平、佐藤 貴彦著)の第三章「3階層型システムを見てみよう」抜粋して紹介しました。今回は、第三章から、Webデータの流れを学ぶことのできる部分を抜粋して紹介します。

3.3 Web データの流れ

 さて、ここからは皆さんにとっても一番なじみ深いと思われる、3階層型システムにおけるWebデータの流れについて説明します。図3.8の流れに沿って見ていきましょう。

図3.8 本節で説明する内容:3階層型システムでのWebデータの流れ
図3.8 本節で説明する内容:3階層型システムでのWebデータの流れ

3.3.1 クライアントPC から Webサーバーまで

 図3.9には、クライアントPC上でWebブラウザを起動してから、Webサーバー上にリクエストが行なわれ、APサーバーへの問い合わせが行なわれるまでの流れを記載しています。それぞれのステップで何が起きているのか、細かく見ていきましょう。

 全体の流れは、以下のようになります。

 (1)Webブラウザからリクエストが発行される

 (2)名前解決が行なわれる

 (3)Webサーバーがリクエストを受け付ける

 (4)Webサーバーが静的コンテンツか、動的コンテンツかを判断する

 (5)必要な経路でデータにアクセスする

図3.9 クライアントPCからWebサーバーへのデータの流れ
図3.9 クライアントPCからWebサーバーへのデータの流れ

 まず、インターネットに接続されている環境で、Webブラウザを起動してみます。図3.10は、サーバーではなくPCでの処理の図解です。ディスクからプログラムが読み込まれ、プロセスが起動し、メモリ空間を確保します。この流れは、PCでもサーバーでも、基本的には同じ動きとなります。前節で紹介したシステムコールが用いられている点に注目してください。

図3.10 クライアントPC上でのWebブラウザの起動
図3.10 クライアントPC上でのWebブラウザの起動

 Webブラウザのアドレス欄に「http://www.yahoo.co.jp」とURLを入力し、[Enter]キーを押します。このとき、名前解決が行なわれてからWebサーバーにアクセスします。このURLがどういう意味か、皆さん知っていますか?答えは、「HTTPを利用して、www.yahoo.co.jpサーバーにアクセスする」という意味です。

 しかしWebブラウザは、このサーバーがどこにあるのかがわからないため、図3.11のように調べる必要があります。この仕組みを「名前解決」と呼びます。

 どうしてこのような仕組みが必要なのかというと、インターネット上のアドレスは「IPアドレス」という数値で表わされており、文字列であるURLとIPアドレスとを結びつけないと、通信ができないためです。こうしたネットワーク関連の細かな話は、第6章でご説明します。

図3.11 名前解決の仕組み
図3.11 名前解決の仕組み

 さて、Webサーバーまでたどり着きました。Webサーバーの役割は、HTTPリクエストに応じて、適切なファイルやコンテンツを返すことです。

 HTTPとは、「HyperTextTransfer Protocol」というプロトコルのことです。プロトコルの意味は第4章で詳しく説明しますが、「HTTPとは、テキストを送受信するための約束事である」とイメージしてください。現在のHTTPは画像や動画データの伝播にも利用されますが、あくまでベースはテキストデータとなっています。

 前掲した図3.8(p.57)のWebサーバー上には、HTTPを扱うことができる「httpdプロセス」が稼働しています。Apacheでは、基本的には親プロセスと子プロセスで処理が分担して行なわれます[※2]。設定によりさまざまな処理方法を選べますが、どのケースでも、基本的に子プロセスがHTTPリクエストを受け付けます。

 リクエストへの返答内容は、HTMLファイルというテキストデータや、画像や動画といったバイナリデータです。これらは「静的コンテンツ」と「動的コンテンツ」に分類することができます。

 「静的コンテンツ」とは、リアルタイムに変化する必要がないものを指します。たとえば、会社のロゴ画像データなど。会社のロゴが毎日変化したら困りますよね。Webサーバーでは、こういったデータの更新頻度が少ないものはディスク上に格納しておき、リクエストがあったときにはこの格納しておいた内容をHTTPに載せて、ユーザーのWebブラウザに返します。

 ※2 子プロセス内部で複数スレッドが起動する形も取ることができます。

 「動的コンテンツ」とは、高頻度で変化するデータを指します。たとえば、ユーザーの銀行残高情報、最新の天気予報データ、ショッピングサイトの買い物かごのデータなど。預金したのに銀行口座が変化しなかったら嫌ですよね。

 性能への影響は第8章で説明しますが、こういったデータをサーバー内部のディスク上に格納すると、更新頻度が高すぎるため、ディスク性能がボトルネックとなる場合がありますし、そもそも、いったんファイルという形で格納すること自体が非効率です。こういった動的コンテンツは、一般的に「APサーバー」でHTMLファイルを動的に生成させます。Webサーバーは、動的コンテンツに対するリクエストをAPサーバーに丸投げし、結果を待ちます。

次のページ
3.3.2 Web サーバーから AP サーバーまで

この記事は参考になりましたか?

  • Facebook
  • Twitter
  • Pocket
  • note
関連リンク
翔泳社の本連載記事一覧

もっと読む

この記事は参考になりましたか?

この記事をシェア

EnterpriseZine(エンタープライズジン)
https://enterprisezine.jp/article/detail/13392 2020/11/19 17:48

Job Board

AD

おすすめ

アクセスランキング

アクセスランキング

イベント

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング