新人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
-
製品資料
[株式会社MatrixFlow] 「物流リソース最適化」ガイド:人員・配車・傭車を出庫依頼の確定前に決めきる -
製品資料
[株式会社キーエンス] なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは -
製品資料
[株式会社セールスフォース・ジャパン] 「CRMは設計と無関係」は本当か? PLMとの融合で実現する高速開発 -
事例
[日本ヒューレット・パッカード合同会社] AIエージェントの時代にどう備える? 「新たな働き手」を支える3要素とは -
製品資料
[日本ヒューレット・パッカード合同会社] “横並びの自動化”から脱却、AI活用で生産性と競争力を高める秘訣
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
法務と開発者で「言葉が通じない」問題 トヨタやソニーが語るOSS管理の真実
-
2
ChatGPTは“検索しまくり”でGeminiは“淡泊”? データが明かすAIの裏側
-
3
なぜ「全社配布Copilot」は使われないのか? 失敗に学ぶAI定着
-
4
損保ジャパンはなぜ「COBOL」を捨てなかったのか? 脱メインフレームの真相
-
5
肥大化した「SFA」の沼 4カ月でBigQuery×AppSheetの新システムを構築した方法
-
6
なぜ「Gemini 4 Argon」は出遅れたのか? Googleが狙う“逆転のシナリオ”
-
7
次世代RPA「ハイパーオートメーション」が急成長か Gartnerが予測
-
8
「Wi-Fi 7」経由でWindowsが乗っ取られる? 最高権限奪取の恐怖
-
9
昭和大学病院がeICUを導入、ICUの患者情報を遠隔地で一括管理
-
10
「何から始めればいい?」 情報漏えい対策で悲鳴を上げる中小企業のリアル
ホワイトペーパーランキング PR
-
1
不審メールの経路や見せ方に変化? 2026年夏の3事例から見えた動向と対処方法
-
2
家庭用Wi-Fiルーターの業務利用は危険? 避けるべき理由と具体的な対策
-
3
プログラミング不要で誰でも実現できる、ネットワーク運用管理の自動化とは
-
4
Microsoft 365を安全に運用 うっかりミスやサイバー攻撃に備えるデータ保護術
-
5
財務部門がAIを最大限に活用する方法 無駄のない戦略的リーダーシップへの道
-
6
LLMが兵器化? 元FBI高官が鳴らす警鐘とセキュリティツール統合のポイント
-
7
なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは
-
8
HDDを使わない「SSDオンリー」が無謀なのはなぜ?
-
9
“あのファイル転送”で暗躍するノーウェアランサム
-
10
「オンプレミス回帰」せざるを得ない“合理的な理由”
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー