ウェブのしくみ(2/5)~HTTP編~
2016/12/15
ウェブのしくみ
~HTTP編~
※ この説明に出てくるアドレスは全て架空のものです。実在するアドレスとは一切関係ありません。
ウェブは通信サービス
通信は、
(1) データ (2) 道 (3) 相手 (4) 共通認識
の 4つに整理して考えられました。
これらについて詳しく知りたい方は、通信のしくみ~考え方の基本編~ をご覧ください。
ウェブでは、それぞれ、以下のしくみが使われています。
(1) データ・・・・・・・・・・ HTML + HTTP
(2) 道・・・ TCP/IP →インターネットのしくみ
(3) 相手・・・・・・・・・・・・・・・・ URL
(4) 共通認識・・・・・・・・・ HTTP + HTML
ここでは、~ハイパーテキスト編~ の続きとして、
HTTPというプロトコルについて見ていきます。
HTTP
HTTPというプロトコル
HTTPは、プロトコルスタックでTCP/IPの上になるプロトコルです。
ブラウザからサーバーへのリクエスト、サーバーからの応答は、HTTPに従います。
HTTPでも、TCP/IPと同様、データの先頭にHTTPヘッダを付けて 相手に送ります。
エイチティティピィ ハイパーテキスト 配送 プロトコル
HTTP: Hyper Text Transfer Protocol
HTMLファイルをネットワークで公開
この例では、shiba.html というHTMLファイルを
wsvr.jp というウェブサーバーの公開用フォルダにそのまま置きます。
HTTPの流れ
ブラウザのアドレスバーにURLを入力したり、
ハイパーリンクをクリックしたりすると、
ブラウザからネットにHTTPリクエストが出されます。
※ ブラウザは、ネットへHTTPリクエストを出すのにOSの通信機能を使います。
OSのDNSクライアント機能 … URLのドメイン名からウェブサーバーのIPアドレスを調べます。
OSのTCP/IP通信機能 …HTTPリクエストを引き継いで、HTTP応答の受け渡しまで通信します。
TCP/IP通信によって目的のウェブサーバーまでHTTPリクエストのパケットが運ばれます。
HTTPリクエストを受け取ったウェブサーバーは、
ウェブサーバーのプログラムに従い、そのリクエストに応答します。
ウェブサーバーが返すHTTP応答も、ウェブサーバー側OSの通信機能を
使ったTCP/IP通信により、リクエスト元(ブラウザ)まで運ばれます。
クライアント(ブラウザ)まで、HTTP応答のパケットが届くと、
ブラウザはHTTP応答に含まれるHTMLを読み込み、
画面上に、その意味を読み取った結果を表示します。
HTMLとHTTPの関係
ブラウザでHTMLが読み込まれると、その内容に応じて、
表示が更新されたり、またHTTP通信が行われたりします。
ブラウザはHTMLを読み込み、画面上に、その意味を読み取った結果を表示します。
ブラウザはHTML中に画像タグを見つけると、
まだHTMLの読み込み途中であっても、その画像をウェブサーバーにリクエストします。
応答が返ってくると、その内容を画面上に反映します。
画像のリクエストとは別に、ブラウザはHTMLの内容をどんどん画面上に表示していきます。
ブラウザでHTMLが読み込まれると、その内容に応じて、
表示が更新されたり、またHTTP通信が行われたりします。
入力フォームに入力された内容は、「送信」ボタンにより、
HTTPリクエストとして、指定先へ送信されます。
送信のHTTPリクエストに対しても、HTTP応答が返ってきます。
応答内容に応じて、またブラウザで画面表示を更新します。
まとめ
ウェブのしくみをまとめると、以下のようになります。
HTTPは、プロトコルスタックで TCP/IP の 上 にあるプロトコルです。
HTTPも、TCP/IPと同様、先頭にHTTPヘッダをつけて、相手にデータを送ります。
HTTPは、ブラウザからのリクエストと、
ウェブサーバーからの応答で1セットになります。
ブラウザは、リクエストしたURLのデータを、HTTP応答として受け取ります。
ブラウザは、受け取ったHTMLに画像タグを見つけると、
その画像も自動的にリクエストします。
だから…
リクエストの応答として送られてきたHTMLを読み込む時、
ブラウザの処理速度や、通信速度が遅いと、
ウェブページの画像はあとから少しずつ表示されます。
画像はHTMLとは別にリクエストされるので、
HTMLとは別のウェブサーバーにある画像(広告画像等)も、
画像タグのURL指定で、HTMLと同じウェブページ内に表示されます。