「HTTP/2」が普及しはじめたと思えば、早くも「HTTP/3」がリリースされたという話を聞くようになりました。
・ここでは「HTTP/2」と「HTTP/3」の違いは何なのか?
・CDNも「HTTP/3」対応にすべきなのか?
上記の2つを中心に、今後のコンテンツ運営についてお話をしたいと思います。
目次
「HTTP/2」と「HTTP/3」の違い
「HTTP/2」から「HTTP/3」になったことで、より効率化されて高速で通信できるようになりました。
※「HTTP」については、後述にある「【補足】HTTPとは?」をお読みください。
主な変更点は、使用される下位プロトコルが変更になったことです。
「HTTP/2」はTCP+TLSを使用しますが、「HTTP/3」はUDP+QUICを使用します。
正直、コンテンツ運営者にとっては「だからどうした?」と思われるかもしれません。
コンテンツが「HTTP/3」で運営されると、以下のような点が変わります。
・効率化された通信で、通信が早くなる
・HTTPS対応する必要がある
・確実に暗号化されるのでセキュリティが高まる
※Apacheはまだ「HTTP/3」未対応
具体的にどう変わったのかを、これから説明していきましょう。
TCPを使う「HTTP/2」とUDP+QUICを使う「HTTP/3」
通信路で同時に送れるデータ量は決まっているため、サイズの大きなデータを送ってしまうと通信路はそのデータでいっぱいになり、ほかのデータが送れなくなってしまいます。
「同時に複数の人がWEB会議できないってこと!?」
そんなことにならないよう、通信時はデータを「パケット」という単位に分解してデータの送受信を行います。
パケットにすればサイズの大きなデータで通信路が塞がれることなく、複数のデータを同時に扱えるのです。
そしてTCPとUDP+QUICの違いは、そのパケットの送り方にあります。
TCPの場合
TCPではパケット(分割されたデータ)に番号が割り振られます。
TCPはこの番号順にデータを送るのですが、受け取り側が「〇番のデータ」が届いたことを伝えないと、TCPはずっと〇番のデータを送り続けるのです。
よく言えば「すべてのパケットが間違いなく送り届けられる」のですが、悪く言うと「ひとつのパケットが届かないだけでそれ以降のパケットが送られない」ことに…。
このTCPのもつ問題を解決するために生まれたのが、「UDP」です。
動画を見ていて、急に動画が停止してWAIT状態になってしまう。
UDP+QUICの場合
UDPもTCPと同じようにデータをパケットに分割しますが、送信方法に大きな違いがあります。
TCPの一番のデメリットは、パケットロスをしたときに同じパケットを送り続けてしまうことでした。
しかしUDPの場合は、パケットが無事に届いたかの確認を行うことなく次のパケットを送り出します。
これにより、パケットロスが原因でデータ転送が滞ることがなくなったのです。
UDPが解決したTCPの問題点
・データ伝送開始時の遅延
・パケットロス時の速度低下
・TLSがTCPを保護しない
・ネットワークが切れると通信がきれる
動画を見ていて、コマ落ちしていることがある。
HTTPを進化させた「SPDY」と「QUIC」
検索エンジンシェアが世界1位のGoogleはユーザーの利便性を第一に考えており、通信プロトコル(ルール)を改良してサイト表示の高速化やセキュリティ向上を行ってきました。
実際にHTTP/2は「SPDY」、HTTP/3は「QUIC」が基盤となっており、いずれもGoogleが開発に携わっています。
HTTP/1.1からSPDY(HTTP/2)になって、通信効率は劇的に改善しました。
そしてHTTP/2からHTTP/3になり、さらに通信効率とセキュリティが向上しています。
2021年1月の時点では、まだHTTP/3はそれほど普及していませんが、HTTP/3対応のブラウザも増えてきたことから考えても、HTTP/3がHTTP/2に取って代わる日は必ず来るでしょう。
「HTTP/3」が標準化!?CDN業者もそれを考慮して選ぶべし
今はまだHTTP/2がメジャーで、HTTP/3に対応しているレンタルサーバーも少ないのが現状(2021年1月現在)です。
「レンタルサーバーがHTTP/2しか対応していないなら、CDNもそれで充分でしょ?」
たしかに、そうかもしれません。
ですが、最初LiteSpeedしか対応していないHTTP/3でしたが、2020年10月にはQUIC + HTTP/3 for NGINXのプレリリース版が発表されました。
そのうちApacheやh2oといった、メジャーなウェブサーバーもHTTP/3に対応してくるでしょう。
やはり、今後のことを考慮するとHTTP/3に対応、または対応準備しているCDN業者を選んだほうがベターだと考えられます!
「HTTP/3」の導入が利益を生み出す
HTTP/3にどれほどよい効果があっても、導入コストや運用コストが発生して利益が減少したら導入するメリットがありません。
実際にHTTP/3を導入すれば、どのようなメリット(利益)が期待できるのでしょうか?
・コンテンツ表示が高速化される
・ユーザー満足度を向上することができる
・SEO効果が期待できるので集客・CVのアップが見込める
このようにコンテンツ運営をしているのなら、HTTP/3の導入は検討する価値があるでしょう。
では、気になるHTTP/3導入にあたってのコスト面はどうでしょうか?
レンタルサーバーを借りている場合は、業者のほうが対応してくれるので導入コストはかからないのでは…と予想しています。
※HTTP/1.1からHTTP/2に移行された場合も、別途料金が発生したという話は聞いていません。
また自社サーバーの場合も、ウェブサーバーのアップグレード、または変更するだけなので、それほど大きなコストはかからないでしょう。
「HTTP/3」は標準化される!
まだHTTP/3が普及していない理由のひとつが、まだ標準化されていないことにあるかもしれません。
しかし、2020年10月にインターネットに関する標準化団体(IETF)の技術面を担っているInternet Engineering Steering Group(IESG)は、QUICとHTTP/3についてのドキュメント(以下6つ)を受託しました。
これらがRFCに加わってインターネットプロトコルの標準となったら、HTTP/3の普及は加速するかもしれません。
HTTP/3対応を完了したブラウザも増えてきましたし、これからCDN業者を探すならHTTP/3の対応がどうなっているのかも選択条件に加えるべきです。
liteCDNも現在、HTTP/3の導入を鋭意準備中です!
「HTTP/3」を実装すれば、本当に早くなるの?
TCPからUDPになったことで、パケット送信が柔軟になり、パケットロスがあった場合も通信が滞りなく行われることになりました。
では、パケットロスがなければHTTP/2とHTTP/3の速度に違いはないのでしょうか?
結論から伝えると、劇的に通信速度が上がることはありませんが、確実に効率的な通信が行われます。
効率的に通信が行われることで、通信による負荷が激減することは間違いないでしょう。
パケットの送信方法以外にも、HTTP/3は「3wayハンドシェイク」を行わないことで通信の効率化を実現しています。
「3wayハンドシェイク」をざっくり説明すると、TCPで採用されている通信のルールです。
HTTP/2では確実なデータ受信を行うために必要だったやり取りでしたが、HTTP/3のように送信元が一方的にデータを送りつける方法では「3wayハンドシェイク」をする必要がありません。
このようにHTTP/3はさまざまなところで、通信の効率化が行われているのです。
【補足】「HTTP/3」に対応しているのは?
今はHTTP/2が主流ですが、HTTP/3へ対応するサーバーやブラウザが少しずつ増えてきました。
ウェブサイトの運営、アプリ運営、ウェブシステムの導入をしている、または検討しているのなら、今後の展開も注意深く見ていきたいですね。
「HTTP/3」の対応ウェブサーバー
〇LiteSpeed
〇Nginx
△H2O(実験的に開始されている)
「HTTP/3」を導入しているブラウザ
Firefox 75~
Safari 14~
Chrome(Canary版)
Edge(Canaryチャネル版)
※HTTP/3未対応のブラウザの場合、自動的にHTTP2で通信が行われます。
「HTTP/3」を導入しているコンテンツ
大手のSNSやコンテンツは、すでにHTTP/3に対応しているようです。
Google.com
Youtube.com
Facebook.com
Blogspot.com
Google.com.hk
Google.co.in
Myshopify.com
Google.co.jp
Google.com.br
Whatsapp.com
「HTTP/3」を導入(予定)しているCDN業者
〇Cloudflare
△Fastly(2020/05/11に対応することを発表)
弊社が提供しているliteCDNもHTTP/3の導入を準備しております。
「HTTP/3」の実装で注意することは?
HTTP/3を導入するにあたって、注意すべきことが2つあります。
ポートを確認する
通常、パソコンでは複数のプログラムが動作しているので、データを受信してもどこのプログラムにデータを届ければよいのかわかりません。
そこで「どのプログラムにデータを届ければよいのか」を示しているのがポート番号です。
そしてHTTP/2で使用されるのは、TCPの80番(非SSL)と443番(SSL)で、HTTP/3で使用されるのはUDPの443番です。
企業によっては、セキュリティ対策として不要なポート(UDP)を閉じていることがあるので、HTTP/3を導入したい場合はポートを開放する必要があります。
コンテンツの常時SSL化
HTTP/3が使うQUICには、セキュリティ機能としてTLS1.3が内蔵されています。
つまり否応なく暗号通信が標準化されたということです。
これはユーザーによっては安全面で喜ばしいことですが、コンテンツ運営者にとっては頭が痛くなることかもしれません。
なぜなら、「TLS1.3が内蔵されている=コンテンツの常時SSL化しなければならない」からです。
【補足】HTTPとは?
HTTPとは、インターネットでデータをやり取りするためのプロトコル(ルール決め)です。
データをやり取りするにはクライアント(受け側)とサーバー(送り側)が存在します。
しかし画像、音楽、映像、テキストなどさまざまな種類のデータをやり取りするので、ルールを決めていなければ、受け取った側はデータをどう処理したらよいのかわかりません。
HTTPはデータの先頭(ヘッダ)にその情報をくっつけることで、どのようなデータかを示しています。
このように、どのような環境であっても滞りなくデータの送受信ができるのは、HTTPのおかげなのです。
【補足】SSL/TLSとは?
SSL/TSLの正式名称は、SSL(Secure Sockets Layer)とTLS(Transport Layer Security)です。
いずれもインターネットセキュリティ技術で、SSLの後身がTLSになります。
まだSSLの知名度が高いため「SSL/TSL」と表記されることが多いですが、HTTP/2やHTTP/3で使用されるのはTLSと考えてよいでしょう。
通信の暗号化によって、盗聴/改ざん/なりすましを防ぐ。
まとめ
インターネットの需要は増えるばかりですが、それに伴いサイバー犯罪も増加傾向にあります。
HTTP/3の登場により、コンテンツ表示が高速化されただけでなく、セキュリティも高まりました。
これによりユーザーの利便性と安全性はさらに向上するでしょう!
コンテンツの利用者増に備え、HTTP/3とCDNの導入を一緒に検討してみてはどうでしょうか?
liteCDNもHTTP/3に対応すべく、現在、鋭意対応中です!