Apidog

オールインワン協働API開発プラットフォーム

API設計

APIドキュメント

APIデバッグ

APIモック

API自動テスト

HTTP2とは?HTTP2 APIをテストする方法はこちら!

HTTP2は、Webブラウジングの高速化と効率化を図ることが期待されています。そこで、本文では、HTTP2とは何かやHTTP2のメリットなどの基本情報を紹介した上、HTTP2にも対応可能なAPIクライアントツールのApidogを使って、HTTP2のリクエストをテストする方法を皆さんに紹介します

中村 拓也

中村 拓也

Updated on 11月 12, 2024

近年、汎用されているHTTP1.1の後継として、HTTP2は結構注目されています。HTTP2は、Webブラウジングの高速化と効率化を図ることが期待されています。そこで、本文では、HTTP2とは何かやHTTP2のメリットなどの基本情報を紹介した上、HTTP2にも対応可能なAPIクライアントツールのApidogを使って、HTTP2のリクエストをテストする方法を皆さんに紹介します。

button

HTTP2とは?

HTTP/2 は、HTTPネットワークプロトコルの2番目のメジャーバージョンとして、HTTP 1.1の後継として知られていることが多くなります。HTTP/2はInternet Engineering Task Force (IETF) によって開発され、2015 年 5 月に承認されました。HTTP/2 の主な目的は、待ち時間を短縮し、クライアントとサーバー間のデータ送信方法を最適化することで、Web サイトと Web アプリケーションのパフォーマンスを向上させることです。この目標を踏まえて、HTTP2は次のような特徴があります。

HTTP/2

HTTP2の特徴

HTTP2の主な特徴は以下のようになります。

マルチプレクシング

サーバーとクライアント間で1つのTCPコネクションを共有し、複数のリクエストとレスポンスを同時に送受信できるようになりました。これにより接続数が減り、レイテンシーが改善されます。

ヘッダー圧縮

HTTPヘッダーを圧縮することで、転送データサイズが小さくなります。

サーバープッシュ

サーバーがクライアントが必要としそうなリソースを予めプッシュできるようになりました。キャッシュ機能が改善されます。

ストリームのプライオリティ制御

ストリームに優先度をつけることができるため、重要な通信を優先的に送信できます。

バイナリ形式

HTTP1.xはテキスト形式のプロトコルでしたが、HTTP2はバイナリ形式のプロトコルとなりました。処理効率が向上しています。

このように、HTTP2では接続効率、転送効率、キャッシュ効率が改善され、結果として通信速度が向上しています。Webアプリケーションの高速化に有効なプロトコルです。

HTTP2が普及されていないのはなぜか?

HTTP/2の採用が広がっていない理由は、次のような点が考えられます。

第一に、サーバーやブラウザのサポートが不十分なため、HTTP/2のメリットを引き出しづらいことが挙げられます。最新の製品では対応していても、旧いシステム環境ではサポートされていないケースが多く、実装に制限があるのが現状です。

第二に、ネットワーク遅延が小さな環境では、HTTP/2の効果がHTTP/1.1と比べてそれほど顕著ではないことも一因として考えられます。低遅延環境では導入インセンティブが低くなっている可能性があります。

第三に、HTTP/2への移行には一定の労力を要する複雑さが伴うため、組織によってはコスト対効果を慎重に判断し、導入をためらっているケースがあると思われます。

このような理由から、HTTP/2の採用が思ったほど進展していないのが実情だと考えられます。サポートの拡大や移行コストの低減が課題と言えそうです。

HTTP2とHTTP1.1の仕組み

HTTP/1.1と比べて、HTTP/2の仕組みには大きな変更があります。次は、主なHTTP2とHTTP1.1の仕組みにおける主な相違点を皆さんに紹介します。

http2とhttp1.1の仕組みの違い
出典:https://www.imperva.com/learn/performance/http2/

接続方式が違う

  • HTTP/1.1はリクエストごとにTCP接続を新規に開始する。
  • HTTP/2は1つのTCP接続で複数のリクエストを多重化する。

メッセージ形式が違う

  • HTTP/1.1はプレーンテキストのメッセージ。
  • HTTP/2はバイナリ形式のフレームに分割。

ヘッダー処理が違う

  • HTTP/1.1は非圧縮のプレーンテキストヘッダー。
  • HTTP/2はヘッダー圧縮により転送データ量が削減。

順序が違う

  • HTTP/1.1はメッセージの順序が保証される。
  • HTTP/2のフレームは順不同で到着する可能性がある。

ブロッキングが違う

  • HTTP/1.1はリクエストのブロッキングが発生する。
  • HTTP/2のマルチプレクシングによりブロッキングが緩和される。

プッシュの有無が違う

  • HTTP/1.1にサーバープッシュの概念がない。
  • HTTP/2ではサーバーがクライアントにプッシュできる。

このように、HTTP/2はHTTP/1.1の欠点を改善する形で設計されていて、HTTP/1.1と比較して大幅にパフォーマンスが向上しているとも言えるのでしょう。

HTTP1.1とHTTP2とHTTP3の比較

ネットワーク上のデータ交換プロトコルの発展に伴って、HTTPというプロトコルは、HTTP3までも発展しています。HTTP1.1は一番汎用のプロトコルバージョンであるのが現状ですが、HTTP2とHTTP3もそれぞれの改善点とメリットがあると考えられています。

そこで、次は、HTTP1.1とHTTP2とHTTP3を完全に比較して、トランスポートプロトコル、多重化、バイナリフレーム化、ヘッダー圧縮、サーバープッシュ及び接続セットアップといった6つの方面から、三者の比較表を作成してみます。

テーブル⒈HTTP/1.1、HTTP/2、HTTP/3機能の比較

特徴 HTTP/1.1 HTTP/2 HTTP/3
トランスポートプロトコル TCP TCP UDP over QUIC
多重化 なし あり あり(QUICにより効率的)
バイナリフレーム化 なし あり あり
ヘッダー圧縮 なし あり あり
サーバープッシュ なし あり 強化されている
接続セットアップ 1RTT 多数のRTT 最小のRTT (QUIC)

このように、HTTPの各バージョンはパフォーマンスの向上を目指して順次改良されてきました。HTTP/2はHTTP/1.1から大きな進歩であり、HTTP/3はUDP上のQUICを利用することでさらなる最適化を図っています。

HTTP 2のAPIを簡単にテストできるApidog

現在、HTTP2は主流のプロトコルとは言えませんので、Postmanをはじめ、多くのAPIテストツールもHTTP2プロトコルをサポートしていません。それでは、もしHTTP2を採用しているAPIをテストするために、どうしたらいいですか?次は、Apidogというツールを使って簡単にHTTP 2のAPIをテストする方法を紹介します。

button

Apidogは、APIの設計、仕様書生成と共有、テスト及びAPIモックにも対応可能なAPIライフサイクリ管理ツールです。Apidogの最新バージョンでは、HTTP2プロトコルへのサポートが開始されました。これにより、Apidogを使用して、いつものHTTP APIのようにHTTP2のAPIを簡単にテストすることが可能です。

ステップ⒈Apidogを開き、リクエストを新規に作成します。

ステップ⒉Apple Push Notification Service(Appleプッシュ通知サービス)の「https://api.sandbox.push.apple.com/」をエンドポイントのURLを送信すると、エラーが発生されずレスポンスを成功に取得できます。

ApidogでHTTP2リクエストを送信

また、「設定タブ」に切り替えて、HTTP2に対応するかどうかを指定するために、HTTPとHTTPSの接続方式を選択することも可能です。

ApidogでHTTP2の設定
button

HTTPS接続方式の選択

HTTP/1.1

従来のようにHTTP/1.1という接続方式を選択すると、Apidogは、HTTP1.1及びそれ以前のプロトコルを採用するサーバーからレスポンスを取得できます。

HTTP/2 ALPN

HTTP/2 ALPNに切り替えると、ApidogはHTTP/2 ALPN(Application-Layer Protocol Negotiation)を使用して接続を確立します。まずはHTTP/2を使用して接続しますが、サーバーがHTTP/2をサポートしないことを検出した場合は、自動的にHTTP/1.1を使用します。こういう流れのおかげで、ApidogはAPIが利用しているHTTPプロトコルを自動的に判断できるので、いつものようにそうすれば、HTTP/2のAPIをテストしたりすることができます。

HTTP接続方式の選択

HTTP/1.1

HTTP接続方式をHTTP/1.1を指定すると、Apidogは、HTTP/1.1のみからレスポンスを取得できます。

HTTP/2 Prior Knowledge

HTTP接続はプレーンなTCP接続で行われるため、TLSハンドシェイク時に行われるALPNによるプロトコルネゴシエーションは利用できません。そこで、HTTP接続方式でHTTP/2を選択すると、Apidogは、HTTP/2を直接使用してh2c接続を確立します。サーバーがHTTP/2をサポートしていない場合は接続失敗になります。 HTTP/1.1は使用されません。

まとめ

HTTP/2は、HTTP/1.1の後継としてWebアプリケーションの高速化を図る次世代プロトコルです。

Apidogは、HTTP/2 APIのテストを簡単に実現するツールとして、HTTP/2対応サーバーとの接続をスムーズに処理します。この次世代プロトコルであるHTTP/2のAPIを手軽にテストできるため、Webアプリケーションの高速化を図る上で力を発揮するでしょう。

button
ApidogでバックエンドAPI開発の効率をどう向上させるか?チュートリアル

ApidogでバックエンドAPI開発の効率をどう向上させるか?

ApidogはAPI管理の全体的なソリューションを提供し、定義からデバッグ、ドキュメント作成までバックエンド開発を最適化します。プロジェクトの規模に関わらず、開発者が効率的に作業を完了するのを支援します。

中村 拓也

11月 25, 2024

APIテスト効率化:ApidogでのJSONレスポンス管理法チュートリアル

APIテスト効率化:ApidogでのJSONレスポンス管理法

この記事では、ApidogでJSONレスポンスからアサーション設定、変数抽出、JSONパスのコピー方法を解説しました。APIテストの自動化と効率的なレスポンス検証が簡単になり、データの再利用も可能です。Apidogを使い、API機能を確認しましょう。

中村 拓也

11月 20, 2024

ApidogとAlgolia統合で実現する効率的なドキュメント検索チュートリアル

ApidogとAlgolia統合で実現する効率的なドキュメント検索

本記事は、AlgoliaをApidogと統合し、APIドキュメントの検索機能を改善する方法を紹介します。最適な検索設定を維持しながら、情報アクセスの迅速さと効率性を向上させ、ユーザー体験を向上させます。

中村 拓也

11月 19, 2024