新人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.
関連記事
新着ホワイトペーパー PR
-
製品資料
“攻撃者優位”なサイバーセキュリティ、全ての「穴」をふさぐ方法とは? -
製品資料
実際に悪用される脆弱性は4%前後 優先的に対処すべき脆弱性を把握するには? -
製品資料
HubSpotの機能を拡張する法人データ活用法 -
製品資料
面倒で非生産的な「名寄せ」作業 高精度&高効率に実施するには? -
製品資料
名刺管理には「その先」がある 成果のでない営業活動から脱却する秘訣
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
Netflixのバックエンドは「ほぼJava」 3000超のアプリを支える開発基盤の裏側
-
2
ISMSの“コンサル丸投げ”が招く数千万円の無駄 NTTドコモビジネスの脱出劇
-
3
「Microsoft 365」が乗っ取られる 跡形もなくMFAを破る手口
-
4
「WSUS」終了の時限爆弾 “本命”移行先ツールとMicrosoft提唱の新管理手法
-
5
100億円の「Linux更新」を回避 みずほ銀行が選んだ“おきて破り”のRHEL延命策
-
6
「結局使わなくなる」Microsoft 365 Copilotを半年で定着 キリンの3施策
-
7
ベッドでの使用が「PC騒音」を悪化させる? Dellが推奨する冷却ファンの鎮め方
-
8
IT製品の導入に関するアンケート「サーバ&ストレージ」編
-
9
AIを配るだけでは現場が空転 GitLabが明かす「AIを使いこなす組織の育て方」
-
10
アラート47%削減 オープンハウスが捨てた「全部メール通知」の監視体制
ホワイトペーパーランキング PR
-
1
AIエージェントで多様な日常業務を効率化するための入門ガイド
-
2
財務・会計はAI活用でどう変わる? 調査で見えた変革の道筋
-
3
AIが「わざわざ使うツール」になっていない? 業務で自然に使う導線にする秘訣
-
4
JR西日本ITソリューションズが「監視業務の属人化」を解消した方法とは?
-
5
「脱Excel」か「Excel快適化」か? 現場にやさしい業務改善の進め方
-
6
「結局、一部の人しか使わない」 AI活用が業務に定着しない根本的な理由
-
7
コスト分析で見る「デバイス復旧」の代償 損失額から導きだされた投資戦略とは
-
8
Macの安全神話は崩壊? 最新の脅威動向から見えた攻撃のトレンドと有効な対策
-
9
ゼロトラストにおける「IDaaSの課題」と補完すべき重要機能とは?
-
10
「NAS」「SAN」「DAS」は何が違う? いまさら聞けないストレージの基礎
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー