WWWその3

(所属カテゴリー:TCP/IP---投稿日時:2001年9月 2日)

情報の転送

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桁の数字です。

コマンド名 機能
GET 指定されたURLのデータを取り出します。
HEAD 指定されたURLのヘッダだけを取り出します。
POST 指定したURLにデータを登録します。
PUT 指定したURLにデータを保存します。
DELETE 指定したURLのデータを削除します。
TRACE 受信したリクエストをクライアントに戻します。

応答コード
100 継続
101 プロトコル変更
200 成功
201 作成完了
400 不正なリクエスト
401 認証されていない
404 URLが見つからない
500 サーバエラー

HTTPによるファイル転送

これらの要求コマンドと応答コードのやり取りを表したのが次の図です。

クライアントから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なども同じようにコマンドと応答のやり取りでファイル転送を行います。

Google
Web n-study.com

各コンテンツの最新記事

有料コンテンツライブラリ(ITエンジニア教育資料)

ネットワーク技術雑誌レビュー

ベンダ資格受験記

オススメ!ネットワーク技術雑誌・書籍

MindMapでおべんきょ

結果を出せるコーチング

Geneのつぶやき

The Power of Words

スポンサードリンク

スポンサードリンク