新人IT担当者のためのネットワーク機器入門【第8回】
Webを支える技術「HTTP」のエッセンス
ネットワークと関連機器に関する「今更聞けない」基礎知識をこっそりおさらいしようというこの連載。今回はレイヤー5からレイヤー7における代表的なプロトコルである「HTTP」について解説します。
連載第7回の「レイヤー4の代表的製品『ファイアウォール』基礎の基礎」では、レイヤー4(トランスポート層)で動作するネットワーク機器「ファイアウォール」について説明しました。ファイアウォールは「コネクションテーブル」を利用して、セキュリティ強度を高めているのが特徴でした。
今回は、レイヤーをさらに上げて、レイヤー5(セッション層)からレイヤー7(アプリケーション層)について説明します。レイヤー5からレイヤー7におけるプロトコルの動作は、使用するアプリケーションによって、大きく異なります。そこで、本連載では「HTTP(HyperText Transfer Protocol)」をピックアップして説明します。
HTTPを理解する3つのポイント
レイヤー5からレイヤー7で動作するアプリケーションプロトコルの中で、最もなじみ深いものがHTTPでしょう。このプロトコルなしにインターネットを語ることはできません。HTTPが現在のインターネットの爆発的普及を支えているといっても過言ではないでしょう。HTTPはもともとHTML(HyperText Markup Language)で記述されているテキストデータを転送するためのプロトコルでした。しかし、今やその枠を飛び越え、ファイルの送受信やリアルタイムのメッセージ交換など、いろいろな用途で使用されています。
HTTPをネットワークの側面から見たときのポイントは「バージョン」「HTTPリクエスト」「HTTPレスポンス」の3つです。それぞれについて説明します。
バージョン:その違いは「TCPコネクション」の使い方の違い
現在、世の中に流通しているHTTPのバージョンは「HTTP/1.0」と「HTTP/1.1」の2つです(※1)。どちらを使用するかは、WebブラウザとWebサーバの設定次第です。最近はWebブラウザもWebサーバもHTTP/1.1をデフォルトの設定にしており、現在の主流となっているバージョンはHTTP/1.1です。この2つはデータの通り道である「TCPコネクション」の使い方が大きく異なっていて、それがサーバの負荷や選定する機器のスペック、設定などに影響してきます。
※1 2015年2月、インターネット標準化団体のInternet Engineering Task Force(IETF)が「HTTP/2」の仕様を標準化したと発表しましたが、本稿執筆時点ではまだ普及には至っていないので、ここでは「HTTP/1.0」と「HTTP/1.1」に絞って話を進めます。
- HTTP/1.0
HTTP/1.0は、リクエストごとにTCPコネクションを作っては壊すという手順を繰り返します。例えば、訪問者が4個のコンテンツで構成されているWebサイトを見た場合、4本のコネクションを作り、コンテンツをダウンロードしたら壊すという手順を繰り返します。これは、相手が1クライアントだったら負荷にはならないでしょう。しかし、1000クライアントとなれば話は別です。ちりも積もって山になり、サーバにとって大きな処理負荷になります。また、ファイアウォールや負荷分散装置に対する新規コネクション数の増大を招きます。
- HTTP/1.1
HTTP/1.1はHTTP/1.0のアップデート版であり、HTTPの効率化を図るいろいろな仕様が盛り込まれています。そのうちの1つが「持続的接続」あるいは「HTTPキープアライブ」と呼ばれるものです。持続的接続はHTTP/1.0では拡張機能でしたが、HTTP/1.1では標準機能になりました。持続的接続は、一度作ったTCPコネクションを使い回す機能です。最初にTCPコネクションを作っておいて、その上で複数のHTTPリクエストを送信します。HTTP/1.0で発生していた「作っては壊す」というTCPの処理がなくなるため、サーバの処理負荷が大きく軽減します。また、ファイアウォールや負荷分散装置の新規コネクション数の増大も回避できます。
同時に作るTCPコネクションの数(最大接続数)は、Webブラウザやそのバージョンによって異なります。例えば、「Internet Explorer」の場合、バージョン7以前はRFC(※2)の推奨に準拠して「2」でしたが、バージョン8から「6」になりました。「Firefox」の場合は「6」です。
※2 RFCは「Request for Comments」の略で、技術の標準仕様がまとめてられている文書のことです。HTTP/1.0はRFC 1945(https://www.ietf.org/rfc/rfc1945.txt)、HTTP/1.1はRFC 2616(https://www.ietf.org/rfc/rfc2616.txt)で標準の仕様がまとめられています。
HTTPリクエスト:サーバに処理を要求
HTTPリクエストは、WebブラウザなどのHTTPクライアントからHTTPサーバへ送信する要求のことです。HTTPクライアントは、リクエストメッセージ(アプリケーションデータ)の最初に記述する「リクエストライン」で、やりたいことをHTTPサーバに伝えます。リクエストラインは、HTTPクライアントが行いたい処理を指定する「メソッド」、処理を行いたいコンテンツの場所を表す「URI(Uniform Resource Identifier)」、前節で説明した「HTTPバージョン」で構成されています。クライアントはURIに対してメソッドを要求し、サーバはその処理結果を「HTTPレスポンス」(詳細は後述)として返します。リクエストラインで使用するメソッドは、以下の通りです。8種類しかなくて、とてもシンプルです。
ここでは、TechTargetジャパンのTopページ(http://techtarget.itmedia.co.jp/)にアクセスする場合を例に、HTTPリクエストを説明します。このページにアクセスするときのHTTPリクエストは「GET / HTTP/1.1」です。「GET」がメソッドで、サーバの情報を取得するときに使用します。「GET」と「HTTP/1.1」の間にある「/」がURIです。HTTPサーバの「/」というところに対してHTTPリクエストを投げています。「HTTP/1.1」がHTTPのバージョンです。つまりこの場合、「HTTP/1.1で“/”の情報をください」と要求していることが分かります。
HTTPレスポンス:処理結果を返答
HTTPサーバは、受け取ったHTTPリクエストを処理し、その結果をレスポンスメッセージとして返します。レスポンスメッセージの最初には「ステータスライン」が記述されていて、処理結果の概要がざっくり分かるようになっています。ステータスラインは「HTTPバージョン」「ステータスコード」「ステータスコードの説明」で構成されています。
この中で最も重要な要素がステータスコードです。ステータスコードは処理結果を表す3桁の番号です。それぞれに意味があって、例えば、Webサーバが正常にしている場合、200番台が返ってきます。また、サーバの処理にエラーが発生した場合、500番台が返ってきます。ステータスコードは、例えば500番は「内部サーバエラー(Internal Server Error)」、503番は「サービス利用不可(Service Unavailable)」という具合に、1の位まで細かく意味が区分されていて、少々覚えにくいものです。新人IT担当者はまず「何百番台は○○」くらいな感じで、ざっくり覚えるところから始めた方がよいでしょう。
では、HTTPリクエストと同様にTechTargetジャパンのTopページにアクセスする場合を例に、HTTPレスポンスを説明します。この場合のHTTPレスポンスに含まれるステータスラインは「HTTP/1.1 200 OK」です。「HTTP/1.1」はHTTPのバージョンです。「200」がステータスコードです。「OK」がステータスコードの概要です。この場合、HTTPリクエスト「GET / HTTP/1.1」に対する処理が正常に終了したことを表しています。このステータスラインの後に、テキストや画像などのアプリケーションデータが続きます。
以上、今回はHTTPについて解説しました。レイヤー5~7ではまず、世の中で最も普及しているHTTPから押さえて、その後に他のアプリケーションへと派生させて学習していけばよいでしょう。次回は、レイヤー4で動作する機器であった「負荷分散装置(ロードバランサ)」からレイヤー7で動作する機器へと進化した「アプリケーションデリバリコントローラー」について説明します。
執筆者紹介
みやたひろし
大学と大学院で地球環境科学の分野を研究した後、某システムインテグレーターにシステムエンジニアとして入社。その後、ネットワーク機器ベンダーのコンサルタントに転身。設計から構築、検証に至るまで、ネットワークに関連する業務全般を行い、今日もどこかで自己研さんを積んでいる。CCIE(Cisco Certified Internetwork Expert)。F5 Certified Technology Specialists。著書に『インフラ/ネットワークエンジニアのためのネットワーク技術&設計入門』『サーバ負荷分散入門』(いずれもSBクリエイティブ)
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
「Excel至上主義」の終わらせ方 丸2日の手作業地獄から情シスと現場を救うには
-
2
取手市がVDIと決別した理由 更改費用「4倍超」を約1.7倍に圧縮
-
3
「Microsoft 365のセキュリティ運用」に関するアンケート
-
4
急増する「AIはこう言ってる」マン 判断を狂わせる「AI忖度」を防ぐには?
-
5
221人調査で分かった「情シス最大のストレス」は?
-
6
「Salesforceのテスト自動化ツール」に関するアンケート
-
7
「データストレージの活用方法」に関するアンケート
-
8
IT製品の導入に関するアンケート「サーバ&ストレージ」編
-
9
「AI時代の統合基盤・エンタープライズAI管理」に関するアンケート
-
10
100億円の「Linux更新」を回避 みずほ銀行が選んだ“おきて破り”のRHEL延命策
ホワイトペーパーランキング PR
-
1
年収2000万「クラウドセキュリティのプロ」になれる資格とは
-
2
セキュリティソフトをすり抜ける標的型攻撃メール、不審メールの見破り方とは?
-
3
Windows Updateの通信集中で回線が逼迫、ネットワーク刷新事例に学ぶ解決策
-
4
財務を戦略的組織へ進化させるAI活用術、4つの主要な障壁と解消方法
-
5
「NAS」「SAN」「DAS」は何が違う? いまさら聞けないストレージの基礎
-
6
“あのファイル転送”で暗躍するノーウェアランサム
-
7
標的型攻撃メールを見破るには? サンプル文面を例に傾向を解説
-
8
商用利用の安全性を確保し大量のコンテンツを高速で生成する、AI活用の秘訣
-
9
マンガで解説、1日で生成AI環境を構築できるワークショップの中身とは?
-
10
Dark AIが台頭する時代の新発想、「より高度なAIで対抗する」具体的方法とは?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー