ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

ファイルダウンロードはAPI経由とHTTPS経由、どちらが速いか

f:id:mbaasdevrel:20181119090323p:plain

ファイルストアからのデータダウンロードはAPI経由とHTTPS経由の二つがあります。同じ画像があった場合、どちらが速いのか、そして相違点についてまとめてみました。

速度について

まず速度についてです。

API HTTPS
24.58 32.58
20.28 13.82
8.71 8.39
13.84 14.10

ネットワークの状態によって安定していないのですが、一概にHTTPSの方が高速という訳ではないようです。APIの方が速い場合も多数あります。ただしHTTPSの方が利点があることも多いです。

eTagがある

今回はキャッシュを消しながら試しましたが、本来であればHTTPSアクセスの場合はeTagが使われます。その結果、キャッシュが有効活用されます。そのため、同じWebブラウザで同じ画像を表示する場合は高速になるはずです。

eTagはWebブラウザごとに保存されるものなので、異なるクライアントではキャッシュが使われません。そのため、全クライアントに対して表示が高速化される訳ではないので注意してください。

OPTIONSがある

APIの場合、データをダウンロードする前にOPTIONSヘッダーによるアクセスが行われます。HTTPSと比べてネットワークアクセスが一つ多いのが欠点です。これは高速に行われますが、それでも多数の画像を表示する場合には懸念点になるかも知れません。

HTTPSはストリーミングで表示できる

これは意外なポイントですが、Webブラウザで画像を表示する場合はimgタグを使うことが多いはずです。そのsrc要素にHTTPSのURLを指定した場合、データをダウンロードしながら徐々に表示されていきます。API経由の場合はすべてのデータをダウンロード後、一気に表示されます。

一気に表示される方がアプリっぽいとも言えますが、ユーザストレスとしては徐々に表示されてくれた方が安心感がありそうです。

まとめ

HTTPSとAPI経由はネットワーク速度という意味ではほとんど変わりませんが、利用するデータや表示回数などによって選択肢が変わってきます。UXを最適化できる方法を選択してください。

中津川 篤司

中津川 篤司

NCMBエヴァンジェリスト。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。 2004年、まだ情報が少なかったオープンソースソフトの技術ブログ「MOONGIFT」を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶDXエージェンシー「DevRel」活動をスタート。