【開発ナレッジ】名前解決と静的ファイル返却の流れ - j-komatsu/myCheatSheet GitHub Wiki

名前解決と静的ファイル返却の流れ

前提条件

  • サーバー構成: Apatchをフロントエンドサーバー、Tomcatをアプリケーションサーバーとして使用。
  • アプリケーションフレームワーク: Spring Bootを利用(今回の流れでは関与しない)。
  • データベース: Oracleを使用(今回の流れでは関与しない)。
  • 通信プロトコル: HTTPを使用。
  • 開発環境: Eclipseベース。

フロー概要

このチートシートでは、ユーザーのブラウザからリクエストを受け付け、DNSによる名前解決を行い、Apatchが静的ファイル(例: HTMLや画像)をユーザーに返却するまでの流れを解説します。


動作フロー

1. ユーザーのリクエスト

  • 入力: ブラウザでhttp://example.com/index.htmlを入力。
  • アクション: ブラウザがexample.comのIPアドレスを取得するためにDNSサーバーに問い合わせを行う。

DNS解決のステップ

  1. ブラウザがOSのキャッシュを確認(ローカルキャッシュ)。
  2. キャッシュが無い場合、指定されたDNSサーバー(例: ISPのDNS)に問い合わせる。
  3. DNSサーバーが権威DNSサーバーに問い合わせを行い、example.comのIPアドレスを取得。
  4. IPアドレスがブラウザに返却され、リクエストが送信される。

2. リクエスト受信

  • 入力: リクエストがApatchサーバー(例: 192.168.1.100)に到達。
  • アクション: Apatchがリクエストを解析し、適切な処理を決定。
    • 静的ファイルの場合、その場でファイルを探し返却。

3. 静的ファイルの返却

  • Apatchの動作:

    1. DocumentRootディレクトリを検索。
    2. リクエストされたファイル(例: index.html)を見つける。
    3. ファイルをレスポンスとしてブラウザに送信。
  • レスポンスの例:

HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1234

<html>
<head><title>Example</title></head>
<body>
<h1>Welcome to Example.com!</h1>
</body>
</html>

4. ブラウザでの表示

  • 入力: Apatchからのレスポンス。
  • アクション: ブラウザがHTMLを解析し、ユーザーにページを表示。

Apatchの設定

必要な設定例

以下の設定を使用して、静的ファイルを返却するApatchを構築できます。

httpd.conf

# サーバーネーム設定
ServerName example.com

# ドキュメントルート設定
DocumentRoot "/var/www/html"

# ディレクトリのアクセス許可
<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

気を付けるポイント

  1. DNS設定の確認

    • ドメイン名が正しくDNSサーバーに登録されていることを確認してください。
    • 必要に応じて/etc/hostsファイルを利用してローカルでの名前解決を試験可能。
  2. Apatchの設定ミス

    • DocumentRootが正しいディレクトリを指しているか確認。
    • 必要なモジュール(例: mod_alias)が有効化されているか確認。
  3. 静的ファイルの権限

    • DocumentRoot以下のファイルが適切な権限を持っていること(例: chmod 644)。
  4. レスポンス確認

    • ブラウザのデベロッパーツールを使用して、Apatchからのレスポンス内容を確認。

小学生にもわかる動作フロー

  1. 名前解決の例え:

    • 「example.com」という住所を知らないとき、郵便局(DNSサーバー)に聞いて住所(IPアドレス)を教えてもらいます。
  2. ファイルの受け取り:

    • 住所がわかったら、その家(Apatchサーバー)を訪ねて「index.html」という手紙をもらいます。
  3. 手紙の中身を読む:

    • もらった手紙(HTMLファイル)を開いて中身を確認します。

これで、ブラウザにウェブページが表示されるよ!

⚠️ **GitHub.com Fallback** ⚠️