なぜネットワークは繋がるのか
第1章 Webブラウザ
概要
ユーザーがブラウザにURLを入力すると、ブラウザはそのURLの解読をする
次にそのURLの意味に従ってHTTPリクエスト・メッセージを作成する
メッセージ作成後、ブラウザはWebサーバーのIPアドレスを調べる。
URLの中にWebサーバーのドメイン名が記載してあるので、その名前をDNSサーバーに問い合わせてIPアドレスを調べる
OS(プロトコル・スタック)に依頼してWEBサーバーに向けてメッセージを送信してもらう
詳細
etc: https://www.google.com
「//」は後に続く文字列がサーバーの名前である事を表す
-
HTTPリクエスト
リクエスト・メッセージはリクエスト・ライン、メッセージ・ヘッダー、メッセージ・ボディの3つで構成されている
レスポンス・メッセージはステータスライン、メッセージ・ヘッダー、メッセージ・ボディの3つで構成されている -
IPアドレス
IPアドレス:32ビットで構成されている
ネットマスク:IPアドレスの内訳
ネットワーク番号:ネットマスクが「1」の箇所
ホスト番号:ネットマスクが「0」の箇所 ※全て0の場合、サブネット自体を表す。全て1の場合、ブロードキャストを表す -
DNSリゾルバ(DNSクライアントに相当するもの)
ネーム・リゾリューション(名前解決):DNSの仕組みを使ってIPアドレスを調べること
Socketライブラリからリゾルバを呼び出せる
応答メッセージからIPアドレスを取り出し、メモリー領域に格納する
ドメイン名からIPアドレスを調べるとき、ブラウザはSocketライブラリのリゾルバを使用する
OS内部のプロトコル・スタックがネットワークに対してデータの送受信を行う
LANアダプタを通じてDNSサーバーに渡る
ドメインの階層
- DNSサーバー
サーバー内に登録されたドメイン名とIPアドレスの対応表を調べて、IPアドレスを回答する
DNSサーバーに登録されている項目、1件分の登録情報をリソース・レコードという
IPアドレスを調べるときはまず最寄りのDNSサーバーにアクセスする
その後、ルートドメインから順番にアクセスしていく
- データ送受信動作
ソケットを作る(ソケット作成フェーズ)
サーバー側のソケットにパイプを繋ぐ(接続フェーズ)
データを送受信する(送受信フェーズ)
パイプを外してソケットを抹消する(切断フェーズ)