WWWその3
| 情報の転送 WWW(World Wide Web)の3回目ではネットワークに直接関わってくるHTTP(Hyper Text Transfer Protocol)です。 そのまま日本語で考えてみると、「ハイパーテキストを転送するためのプロトコル」ということですね。 |
| HTTP HTTPの階層構造は以下の通りです。 ![]() トランスポート層にはTCPを使い、ポート番号は80です。TCPを使うことによって、HTTPは信頼性のある通信を行うことが可能です。またフロー制御やエラー制御などもTCPに任せることができます。 基本的にHTTPはクライアント/サーバ型のプロトコルです。ブラウザでリンクをクリックすると、まず目的のWEBサーバに対してTCPコネクションの確立を行います。 もちろん、TCPコネクションの確立の前にはDNSサーバにWWWサーバのホスト名を問い合わせてIPアドレスを求めてくるという手順が必要です。 ![]() TCPコネクションが無事に確立できれば、HTTPのやり取りが始まります。HTTPではクライアントからの要求コマンドとそれに対するサーバからの応答コードがやり取りされていきます。 次に示すのがクライアントからサーバに送られる主なHTTP要求コマンドと、サーバからクライアントに送る応答コードです。応答コードは3桁の数字です。
これらの要求コマンドと応答コードのやり取りを表したのが次の図です。 ![]() クライアントからWWWサーバに対して、GETコマンドによって「このURLのファイルをください!」とお願いしています。それを受け取ったWWWサーバは指定されたファイルがあれば、「OKです」と返事をくれます。これは"200"という数字で返ってきます。そして、そのあとに該当のファイルをクライアントに対して送っていきます。クライアントは要求したファイルを受け取ると、それをブラウザが解釈して、実際のパソコンの画面に表示されます。 なお、要求コマンドや応答コードはそれぞれ一番最後に改行コードが入ります。改行コードは特別なASCII文字コードで"CR(0x0D)+LF(0X0A)"です。改行コードはプログラミングをされている方ならおなじみですね。また各URLなどのパラメータは空白で区切られます。 もし、指定したURLがなければどうなるか? その場合はサーバから"404"という応答コードが返ってきます。これは誰もが一度は見たことがあるんじゃないかと思います。URLが間違っていたり、ページが移動していたりするときに返されてくるコードです。 以前は、こうした要求コマンドとそれに対する応答コードはHTMLファイルやGIF、JPGファイルごとにTCPコネクションを張ってやり取りしていたのですが、HTTP1.1になって1つのTCPコネクションで複数のファイルを要求できるようになっています。 TCP/IPのアプリケーションはHTTPのように、ASCII文字列のコマンドと応答コードのやり取りを行っているものが多いです。たとえば、FTPなども同じようにコマンドと応答のやり取りでファイル転送を行います。 |
(C) Copyright 2000-2001 Gene All Right Reserved