しくみかん

しくみかんは、世の中にある様々なもののしくみをわかりやすく説明するサイトです。

ウェブのしくみ(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

 

プロトコルスタック(HTTP/TCP/IP)

 

HTMLファイルをネットワークで公開

 

この例では、shiba.html というHTMLファイルを
wsvr.jp というウェブサーバーの公開用フォルダにそのまま置きます。

 

http://wsvr.jp/shiba.html

shiba.html

 

HTTPの流れ

 

ブラウザのアドレスバーにURLを入力したり、
ハイパーリンクをクリックしたりすると、
ブラウザからネットにHTTPリクエストが出されます。

 

ブラウザがリクエストを送信

 

※ ブラウザは、ネットへHTTPリクエストを出すのにOSの通信機能を使います。

OSのDNSクライアント機能 … URLのドメイン名からウェブサーバーのIPアドレスを調べます。

OSのTCP/IP通信機能 …HTTPリクエストを引き継いで、HTTP応答の受け渡しまで通信します。

 

TCP/IP通信によって目的のウェブサーバーまでHTTPリクエストのパケットが運ばれます。

 

ネットワークを通ってサーバーにリクエストが届く

 

 

HTTPリクエストを受け取ったウェブサーバーは、
ウェブサーバーのプログラムに従い、そのリクエストに応答します。

 

ウェブサーバーがリクエストに応答

 

ウェブサーバーが返すHTTP応答も、ウェブサーバー側OSの通信機能を
使ったTCP/IP通信により、リクエスト元(ブラウザ)まで運ばれます。

 

ネットワークを通ってHTTP応答がクライアントに届く

 

クライアント(ブラウザ)まで、HTTP応答のパケットが届くと、
ブラウザはHTTP応答に含まれるHTMLを読み込み、
画面上に、その意味を読み取った結果を表示します。

 

HTTP応答がクライアントで読み込まれる

 

 

HTMLとHTTPの関係

ブラウザでHTMLが読み込まれると、その内容に応じて、
表示が更新されたり、またHTTP通信が行われたりします。

web2-1

 

↓次へ進む

 

ブラウザはHTMLを読み込み、画面上に、その意味を読み取った結果を表示します。

web2-2

 

ブラウザはHTML中に画像タグを見つけると、
まだHTMLの読み込み途中であっても、その画像をウェブサーバーにリクエストします。

 

↓次へ進む

 

応答が返ってくると、その内容を画面上に反映します。

web2-3

 

↓次へ進む

 

画像のリクエストとは別に、ブラウザはHTMLの内容をどんどん画面上に表示していきます。

web2-4

 

↓次へ進む

 

ブラウザでHTMLが読み込まれると、その内容に応じて、
表示が更新されたり、またHTTP通信が行われたりします。

web2-5

 

入力フォームに入力された内容は、「送信」ボタンにより、
HTTPリクエストとして、指定先へ送信されます。

 

↓次へ進む

 

送信のHTTPリクエストに対しても、HTTP応答が返ってきます。

応答内容に応じて、またブラウザで画面表示を更新します。

web2-6-2

 

 

まとめ

ウェブのしくみをまとめると、以下のようになります。

 

HTTPは、プロトコルスタックで TCP/IP の 上 にあるプロトコルです。

HTTPも、TCP/IPと同様、先頭にHTTPヘッダをつけて、相手にデータを送ります。

 

web2-11

 

HTTPは、ブラウザからのリクエストと、
ウェブサーバーからの応答で1セットになります。

 

ブラウザは、リクエストしたURLのデータを、HTTP応答として受け取ります。

web2-22

 

ブラウザは、受け取ったHTMLに画像タグを見つけると、
その画像も自動的にリクエストします。

web2-23

 

だから…

 

リクエストの応答として送られてきたHTMLを読み込む時、

web2-24

 

ブラウザの処理速度や、通信速度が遅いと、
ウェブページの画像はあとから少しずつ表示されます。

 

web2-25

 

画像はHTMLとは別にリクエストされるので、
HTMLとは別のウェブサーバーにある画像(広告画像等)も、
画像タグのURL指定で、HTMLと同じウェブページ内に表示されます。

 

web2-26

 

 

 

 

 

 - IT ,