• BPnet
  • ビジネス
  • IT
  • テクノロジー
  • 医療
  • 建設・不動産
  • TRENDY
  • WOMAN
  • ショッピング
  • 転職
  • ナショジオ
  • 日経電子版
  • PR

  • PR

  • PR

  • PR

  • PR

検証!HTTP/2

高速HTTP/2通信の利用には“スイッチ”が必要

北郷 達郎=日経NETWORK 2017/04/20 日経NETWORK
出典:日経NETWORK 2016年7月号pp.51-55
(記事は執筆時の情報に基づいており、現在では異なる場合があります)
目次一覧

 Webサーバーは既存のHTTP/1.0やHTTP/1.1との互換性を確保するため、HTTP/2に対応していないWebブラウザーからのリクエストにも対応できなければいけない。HTTP/2で通信するには、どこかで「ここからはHTTP/2でやり取りしますよ」というスイッチを明示的に入れなければならないのだ。

HTTPから遷移する

 この方法は、通信経路を平文にするか、TLS/SSLで暗号化するかによって違ってくる。

 平文の場合は、HTTP/1.0やHTTP/1.1にあったプロトコルのアップグレード機能を使う。これはリクエストヘッダーの要素として規定されていて、最初のベースとなるHTMLファイルをダウンロードする際にヘッダーに記述する(図9(a))。

 HTTP/1.0と同1.1の場合、基本的なアクセス方法に互換性があるため、両者の間でプロトコルを切り替える必要はなかった。リクエストヘッダーにあるバージョン番号をWebサーバーがチェックすれば十分だった。

 しかしHTTP/2はこれまでのアクセス方法と互換性がないため、このやり方は通用しない。そこでもともとHTTP/1.0で規定されていたUpgrade機能を利用して、HTTP/2での通信を開始する。

 実際、最初はHTTP/1.1で始まっている。クライアントはGETメソッドを発行し、そのリクエストヘッダーにUpgrade項目を入れる。これに対しサーバーがレスポンスとして、「Switching Protocol」を返して、HTTP/2での通信が始まる(同(c))。「h2c」とあるのが、平文によるHTTP/2プロトコルを指している。

 一方TLS/SSLを使う場合は、最初からHTTP/2での通信を始められる。TLS/SSLでは、その上のレイヤーで利用するプロトコルを通知する機能であるALPNを利用できるからだ(同(b))。ALPNは最初のTLS/SSLのネゴシエーション時に、アプリケーション層が利用するプロトコルを定める手順。クライアントがアクセス時に利用したいプロトコルを通知し、サーバーがその中から実際に使うプロトコルを選ぶことでプロトコルを決定する。

 FirefoxがHTTP/2対応サーバーに接続する様子を見ると、プロトコルとして「h2」「SPDY/3」「http/1.1」の三つを挙げているのがわかる(同(d))。この中からサーバーがh2を選択するので、以降のやり取りがHTTP/2に切り替わる。

図9●HTTP/2を指定して接続する二つの方法
HTTP/1.1のプロトコルアップグレード機能を使う方法(a)と、SSL/TLSのALPNを使う方法がある(b)。前者はアップグレードを指定するヘッダーを送ってHTTP/2に切り替える。SSL/TLSを使わないアクセス方法なので、現実にはあまり見かけない。なお「h2c」「h2」というのが、HTTP/2を表している。実際のやり取りを見ると、h2cやh2といった文字があることがわかる(c、d)。
[画像のクリックで拡大表示]
▼ALPN
Application Layer Protocol Negociationの略。アプリケーション層で利用するプロトコルを、クライアントとサーバーで対話して決める。

ここから先はITpro会員(無料)の登録が必要です。

次ページ ヘッダーの内容をコードに変換
  • 1
  • 2
  • 3

あなたにお薦め

連載新着

連載目次を見る

今のおすすめ記事

  • 【AIスピーカー競争】

    体験レポ、Amazon Echoで買い物をしてみた

     米Amazon.comのAI(人工知能)スピーカー「Amazon Echo」では、音声を使って「Amazon.com」での買い物ができる。音声アシスタントの「Amazon Alexa」に「ミネラルウォーターを注文して」などと話しかけるだけだ。シリコンバレー駐在記者がその使い勝手を試した。

ITpro SPECIALPR

What’s New!

経営

アプリケーション/DB/ミドルウエア

設計/開発

サーバー/ストレージ

ネットワーク/通信サービス

セキュリティ

もっと見る