【開発ナレッジ】名前解決と静的ファイル返却の流れ - j-komatsu/myCheatSheet GitHub Wiki
- サーバー構成: Apatchをフロントエンドサーバー、Tomcatをアプリケーションサーバーとして使用。
- アプリケーションフレームワーク: Spring Bootを利用(今回の流れでは関与しない)。
- データベース: Oracleを使用(今回の流れでは関与しない)。
- 通信プロトコル: HTTPを使用。
- 開発環境: Eclipseベース。
このチートシートでは、ユーザーのブラウザからリクエストを受け付け、DNSによる名前解決を行い、Apatchが静的ファイル(例: HTMLや画像)をユーザーに返却するまでの流れを解説します。
-
入力: ブラウザで
http://example.com/index.html
を入力。 -
アクション: ブラウザが
example.com
のIPアドレスを取得するためにDNSサーバーに問い合わせを行う。
- ブラウザがOSのキャッシュを確認(ローカルキャッシュ)。
- キャッシュが無い場合、指定されたDNSサーバー(例: ISPのDNS)に問い合わせる。
- DNSサーバーが権威DNSサーバーに問い合わせを行い、
example.com
のIPアドレスを取得。 - IPアドレスがブラウザに返却され、リクエストが送信される。
-
入力: リクエストがApatchサーバー(例:
192.168.1.100
)に到達。 -
アクション: Apatchがリクエストを解析し、適切な処理を決定。
- 静的ファイルの場合、その場でファイルを探し返却。
-
Apatchの動作:
-
DocumentRoot
ディレクトリを検索。 - リクエストされたファイル(例:
index.html
)を見つける。 - ファイルをレスポンスとしてブラウザに送信。
-
-
レスポンスの例:
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>
- 入力: Apatchからのレスポンス。
- アクション: ブラウザがHTMLを解析し、ユーザーにページを表示。
以下の設定を使用して、静的ファイルを返却するApatchを構築できます。
# サーバーネーム設定
ServerName example.com
# ドキュメントルート設定
DocumentRoot "/var/www/html"
# ディレクトリのアクセス許可
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
-
DNS設定の確認
- ドメイン名が正しくDNSサーバーに登録されていることを確認してください。
- 必要に応じて
/etc/hosts
ファイルを利用してローカルでの名前解決を試験可能。
-
Apatchの設定ミス
-
DocumentRoot
が正しいディレクトリを指しているか確認。 - 必要なモジュール(例:
mod_alias
)が有効化されているか確認。
-
-
静的ファイルの権限
-
DocumentRoot
以下のファイルが適切な権限を持っていること(例:chmod 644
)。
-
-
レスポンス確認
- ブラウザのデベロッパーツールを使用して、Apatchからのレスポンス内容を確認。
-
名前解決の例え:
- 「example.com」という住所を知らないとき、郵便局(DNSサーバー)に聞いて住所(IPアドレス)を教えてもらいます。
-
ファイルの受け取り:
- 住所がわかったら、その家(Apatchサーバー)を訪ねて「index.html」という手紙をもらいます。
-
手紙の中身を読む:
- もらった手紙(HTMLファイル)を開いて中身を確認します。
これで、ブラウザにウェブページが表示されるよ!