ネットワークプロトコルのHTTP/2を使用することで、これまで以上に素早くサイトにアクセスできるようになりました。しかし、時に「ERR_HTTP2_PROTOCOL_ERROR」というエラーに出くわすことがあります。このエラーが生じると、特定のウェブページにアクセスできなくなるため厄介です。
幸い、このHTTP/2エラーには、さまざまな解決策があります。ブラウザで解決する方法と、お使いのオペレーティングシステム内で解決する方法がありますが、いずれにしてもすぐにブラウジングを再開することができます。
この記事では、「ERR_HTTP2_PROTOCOL_ERROR」の概要と原因についてご説明した後、ブラウザとデバイスでの解決方法をそれぞれご紹介していきます。早速本題に入りましょう。
「ERR_HTTP2_PROTOCOL_ERROR」とは
検索を実行すると、時に「ERR_HTTP2_PROTOCOL_ERROR」というエラーメッセージが表示されます。これは、アクセスしようとしたウェブページがダウンしている、または、別のアドレスに恒久的に移行していることを示しているため、ウェブページにアクセスすることができなくなります。
このエラーをもう少し掘り下げる前に、まずはHTTP(HyperText Transfer Protocol)について簡単にご説明します。HTTPは、オンラインのリソースを取得するためのアプリケーションプロトコルです。
プロトコルとは、クライアント間でどのようにデータを転送するかを制御するための規格で、この文脈では、ユーザーとウェブブラウザ間のHTTPりリクエストを制御するものです。
現在、ほとんどのブラウザ、アプリケーション、システムは、HTTP/2ネットワークプロトコルで動作しています。この比較的新しいプロトコルによって、仮想データの通信効率が高まります。
このプロトコルには数々のメリットがありますが、その一方でオンラインコンテンツへのアクセスを妨げることも。「ERR_HTTP2_PROTOCOL_ERROR」はそんなエラーの1つで、HTTPのエラーメッセージとして表示され、コンテンツへのアクセスがブロックされてしまいます。
「ERR_HTTP2_PROTOCOL_ERROR」の原因
一般的な原因は、ブラウザやネットワークの問題、またはサードパーティソフトウェアとの競合です。これはHTTP/2が無効であったり、サポートされていなかったりすると発生します。
HTTP/2エラーが起こると、何かがHTTPアプリケーション層とユーザーのデバイスの間の通信を中断します。これは、あらゆるアプリケーションやシステムで発生する可能性がありますが、Google Chromeのようなウェブブラウザで見られるのが一般的です。
具体的には、以下のような原因が考えられます。
- ソフトウェアが古い─使用しているデバイスのOSやブラウザが古い場合、特定のウェブサイトと互換性がないことがあります。サイトがデバイスのデータパケットの解析に失敗するとこのエラーを引き起こします。
- ブラウザキャッシュの破損─ブラウザのキャッシュ、Cookie、閲覧履歴が破損してる場合、要求されたサイトがデバイスの正当性を認証できないことがあります。その結果、ウェブサーバーが接続拒否し、このエラーを返します。
- ブラウザ拡張機能の競合─サードパーティーのブラウザ拡張機能がサイトのサーバーとの通信を妨害することも。これによって、サイトのレンダリングが正常に行われなくなります。
- サードパーティのウイルス対策またはファイアウォールソフトウェア─サードパーティ製のソフトウェアをインストールして接続を保護していると、特定のサイトへのアクセスが意図せずブロックされてしまうことがあります。
このように、HTTP/2エラーが発生する理由はさまざまですが、解決策も多数あります。
ブラウザで「ERR_HTTP2_PROTOCOL_ERROR」を解決する
「ERR_HTTP2_PROTOCOL_ERROR」のエラーに遭遇したら、原因を突き止めるためにトラブルシューティングを行いましょう。これからさまざまな方法をご紹介していきますが、かなりシンプルな操作で解決することも。
例えば、まず最初にページを再読み込みしてみてください。F5キーを押すと、If-Modified-Sinceヘッダーを含むリクエストが送信されます。もしアクセスできないサイトが一時的にダウンしていた場合には、これだけでエラーが解消されます。
また、違うブラウザでアクセスしてみるのも手です。タブをたくさん開いている場合は、不要なタブをすべて閉じてみてください。それでもエラーが解決しない場合は、以下の解決策を実践してみてください。
1. ブラウザを更新する
古いバージョンのブラウザをお使いの場合、ブラウザのデータパケットが表示しようとしているサイトと互換性がないために、エラーが発生している可能性があります。
これに対する答えは、ブラウザの更新です。Chromeであれば、画面右上の縦三点リーダーをクリックし、メニュー上部に表示される「Google Chromeを更新」をクリックするだけ。
これが表示されない場合は、すでに最新バージョンを使用しているかもしれません。確認するには、「ヘルプ」>「Google Chromeについて」に移動します。
この画面で、インストール可能なアップデートがあれば、自動的にインストールされます。更新を完了させるには、ブラウザの再起動が必要です。
Google Chromeのモバイルアプリを使用している場合は、App StoreまたはGoogle Playストアを開いて、アップデートの有無を確認することができます。更新があれば、インストールしましょう。
2. ブラウザのデータをクリアする
レンダリング中にエラーが発生した場合は、ブラウザのキャッシュ、Cookie、閲覧履歴をクリアしてみてください。これによって、訪問先のサイトがデバイスを認証し、要求に応えることができるようになります。
お使いのブラウザによって、キャッシュをクリアする方法は異なります。Chromeの場合は、画面右上のメニューから「その他のツール」>「閲覧履歴の消去」に移動します。
表示されるポップアップ画面で、削除するデータを指定します。「キャッシュされた画像とファイル」は必ず選択しましょう。必要に応じて、閲覧履歴やCookieなどのデータも選択してください。
Safariの場合は、メニューバーから「Safari」>「履歴を消去」に移動します。
キャッシュ、Cookie、サイトデータを期間を指定して削除することができます。期間を選択したら、「履歴を消去」をクリックします。
Mozilla Firefoxの場合は、右上にあるハンバーガーアイコン(横線3本のアイコン)で「履歴」を選択します。
新しいタブで、「最近の履歴を消去」をクリックします。
他のブラウザと同様、削除するデータを選択することができます。「キャッシュ」は必ず選択しましょう。
ブラウザキャッシュをクリアした後は、エラーが発生したサイトに再度アクセスしてみてください。まだエラーが表示される場合は、次の解決策に移りましょう。
3. ブラウザのシークレットモードを利用する
ウェブサイトにアクセスすると、ブラウザはその都度サイトに関する情報をキャッシュに保存しています。その後ページに再度訪れると、ブラウザはサーバーに再度要求を送る代わりに、キャッシュされたデータを取り出します。これによってサイトの表示速度が速くなるのが通例です。
この理由から、ブラウザキャッシュをクリアしたくないという方もいるかもしれません。その場合は、シークレットモードなどのプライベートブラウジングを利用しましょう。
キャッシュのクリアやサードパーティ拡張機能の無効化を避けるには、これが効果的な代替策になります。Chromeでこれを行うには、画面右上のメニューを開いて、「シークレットウィンドウを開く」をクリックします。
シークレットウィンドウで、サイトに再度アクセスしてみてください。シンプルですが、これでエラーが解消されることがあります。ただし、これはあくまで一時的な解決策です。
4. 拡張機能を無効化または削除する
先に述べた通り、サードパーティの拡張機能は、ブラウザとウェブページの通信を妨げることがあります。そのため、拡張機能を無効にして、エラーが消えるかどうかを確認するのも効果的です。
Chromeでこれを行うには、「その他のツール」> 「拡張機能」に移動します。
すると、拡張機能が一覧表示されます。各拡張機能の右下のトグルスイッチをクリックして無効化します。
拡張機能をすべて無効にしたら、エラーが発生したページに再度アクセスしてみてください。これでエラーが消えたら、拡張機能に原因があることがわかります。
その場合は、「拡張機能」ページに戻り、1つずつ有効化していきます。1つ有効化するたびにサイトにアクセスし、エラーが再度現れるかを確認し、原因となっている拡張機能を特定しましょう。見つかったら、その拡張機能は削除してしまうことをおすすめします。
5. QUICプロトコルを無効にする
Quick UDP Internet Connections(QUIC)は、Googleが開発したトランスポート層の通信プロトコルです。主な導入目的は、HTTPトラフィックの速度、セキュリティ、効率性の向上にありました。
ところが、現在QUICを採用するウェブサイトはわずか8%。そのため、サイトがこの手のトラフィックを処理するように設定されていなければ、クライアントとサーバー間に互換性の問題が生じ、HTTP/2エラーにつながることがあります。
この場合の解決策は、ブラウザでQUICプロトコルを無効化することです。Chromeの場合は、検索バーに以下のURLを貼り付けます。
chrome://flags/#enable-quic
すると、黄色で強調された「Experimental QUIC protocol」という文字が表示されます。右にあるドロップダウンで「Disabled」を選択して無効化してください。
それからブラウザを再起動すると、QUICが無効になり、非対応のウェブサイトを閲覧できるようになります。
6. ブラウザの設定を初期化する
Google Chromeを使用していると、ちょっとした不備に気づかず、デフォルトの設定を更新してしまうことがあります。そして、後になって「ERR_HTTP2_PROTOCOL_ERROR」の原因になることも。
これは、ブラウザの設定を初期化することで解決できます。まずは、メニューから「設定」を開きましょう。
左側のメニューから「詳細設定」の「リセットとクリーンアップ」を選択し、「設定を元の規定値に戻す」をクリックします。
設定のリセットを確認するポップアップ画面で「設定のリセット」をクリックして、設定を初期化します。
なお、この「設定のリセット」をクリックすると、ブラウザをまっさらな状態に戻すことになるため、初期化すると検索履歴、起動ページ、固定しているタブ、拡張機能、ブックマークなども削除されることに留意してください。とは言え、HTTP/2エラーの原因となっているソフトウェアや設定を削除するのには有効です。
別の方法として、ブラウザの実験的な機能(flags設定)を初期化するのも手です。これは、十分なテストが行われておらず、試験的に導入されていることから、ブラウザがウェブサイトとの通信を妨げている可能性があります。
検索バーに以下のURLを貼り付けて、flagsの設定を開きましょう。
chrome://flags/
右上にある「Reset all」をクリックします。誤って特定の機能を有効にしている場合は、これで無効化することができます。
Chromeを再起動すると変更が適用されます。
7. Google Chromeを再インストールする
上記いずれの方法でもエラーが解決できない場合は、Google Chromeのアプリ内にエラーがあるかもしれません。設定を初期化しても、エラーが消えない場合は、ブラウザ全体の再インストールを検討してみてください。
まずは、お使いのデバイスからブラウザを削除します。macOSの場合は、アプリケーションフォルダを開いて、Google Chromeアプリをゴミ箱に移動してください。
加えて、Chromeのソフトウェアアップデートも削除しましょう。デバイス上で「~/Library/Google」を検索し、検索結果に表示される「GoogleSoftwareUpdate」フォルダをゴミ箱に移動します。
Windowsの場合、Chromeを削除する手順は異なります。Windowsの「スタート」をクリックして「コントロールパネル」を開きます。「プログラム」の下にある「プログラムのアンインストール」をクリックします。
Google Chromeを見つけて右クリックし、「アンインストール」を選択して完了です。
Chromeの再インストールは、MacとWindowsのどちらでも同じ手順です。Google Chromeの公式サイトでファイルをダウンロードします。
なお、Chromeを一度削除するとすべてのデータが消えてしまうことになるため、あくまで最終手段として実行することをおすすめします。
デバイスで「ERR_HTTP2_PROTOCOL_ERROR」を解決する
以上がウェブブラウザで「ERR_HTTP2_PROTOCOL_ERROR」を解決する方法でした。原因は、ブラウザ以外にある可能性もあります。続いてのトラブルシューティング方法として、お使いのデバイスをHTTP/2に対応させる手順をご紹介します。
1. デバイスの日付と時刻をリセットする
こちらは初歩的なトラブルシューティングですが、デバイスの日付と時刻が正しく設定されているかを確認しましょう。正しくないタイムスタンプが押されたデータパケットは拒否される可能性があり、これがこのエラーを引き起こしているかもしれません。
Windowsでは、画面右下にある時計を右クリックして、「日付と時刻の調整」を選択します。
正しい時刻が自動表示されていない場合は、「時刻を自動的に設定する」をクリックして無効化し、その下にあるドロップダウンで正しいタイムゾーンを選択してください。
次に「変更」ボタンをクリックして、「日付と時刻を手動で設定する」を選択してください。ポップアップ画面で正しい日付と時刻を設定しましょう。
Macの場合は、Appleメニューをクリックして「システム環境設定」を開きます。「日付と時刻」を選択してください。
左下にあるロックを解除すると、「日付と時刻を自動的に設定」を無効化することができます。その後、正しい値を設定してください。
設定を保存したら、エラーが表示されたページに再度アクセスしてみてください。
2. オペレーティングシステムを更新する
デバイスをしばらく更新していない場合、パフォーマンスの多くの問題が生じる恐れがあります。OSと訪問先サイトの競合を避けるために、OSが適切に更新されているかを確認しましょう。
macOSの場合は、まずバックアップを取ることをおすすめします。「システム環境設定」>「ソフトウェアアップデート」に移動します。
新しいアップデートがある場合は、「今すぐアップデート」のボタンが表示されます。クリックしてOSを更新してください。
Windowsの場合は、「スタート」>「設定」>「Windows Update」に移動し、新しいアップデートがある場合は、最新のものをインストールしてください。
デバイスを最新の状態にすると、ほぼすべてのサイトとの互換性の問題が解消されるはずです。HTTP/2エラーが解決されているかどうかを確認し、まだエラーが解決しない場合は、次のステップに進みましょう。
3. DNSキャッシュをクリアする
インターネットでは、ドメインネームシステム(DNS)が、利用可能なすべてのサイトとその固有のIPアドレスのインデックスとして機能しています。サイトにアクセスすると、OSやブラウザがこの情報をデータベースに保存します。これによって、再度訪問した際のサイトの表示速度を上げることができます。
「ERR_HTTP2_PROTOCOL_ERROR」が発生したら、DNSキャッシュをクリアしてみるのも1つの方法です。コンピューターからIPアドレスやその他のDNSデータを削除することで、エラーが解決する可能性があります。
MacのDNSキャッシュをクリアするには、コマンドラインインターフェイス(ターミナル)を開き、以下のコマンドを貼り付けてください。
sudo killall -HUP mDNSResponder
これでDNSキャッシュがクリアされ、HTTP/2エラーも解決するはずです。ただし、古いバージョンのmacOSでは若干操作が異なります。
Windows 10、8、7、またはXPの場合は、コマンドプロンプトを開き、コマンドラインに以下を貼り付けます。
ipconfig /flushdns
DNSキャッシュがクリアされると、確認メッセージが表示されます。
4. ウイルス対策ソフトを確認する
ブラウジング中のコンピュータを安全に保つため、ウイルス対策ソフトをインストールしている方は多いはず。ウイルス対策ソフトには、もちろんセキュリティ上のメリットが多々ありますが、時に特定のアプリケーションを悪意のあるものとしてフラグを立てることがあります。これによって、アクセスが不正に制限されてしまうことも。
まだこの時点でもエラーが解消できない場合、ウイルス対策ソフトウェアが正常に機能しているかどうかを確認してください。まずは、新たなセキュリティ問題が表示される「通知」のような画面を開いてください。
ほとんどのウイルス対策ソフトウェアには、「隔離」のような画面があり、コンピュータで検出されたすべてのセキュリティ脅威が表示されます。
この画面で、正当なアプリケーションにフラグが立っていないかどうかを確認し、該当する場合はウイルス対策ソフトウェアを一時的に無効にしてみてください。
まとめ
「ERR_HTTP2_PROTOCOL_ERROR」に遭遇すると、お目当てのサイトやアプリにアクセスすることができず、非常にイライラさせられます。幸い、このエラーの解決策は多数あり、どれも簡単に実行できます。
ウェブの知識がない全くの初心者でも、ウェブブラウザを最適化し、HTTP/2エラーを回避する方法があります。例えば、キャッシュのクリア、プライベートブラウジング、サードパーティの拡張機能の無効化などによって、ブロックされたコンテンツを正常に閲覧することができるように。もしOSに原因がある場合は、ソフトウェアの更新を行うか、DNSキャッシュをクリアするのが効果的です。
サイト所有者なら、自分のウェブページはいつでもアクセスできる状態にしておきたいもの。KinstaのHTTPステータス&リダイレクトチェッカーを使用すると、ウェブサイトが正常に動作しているかどうかを確かめることができます。また、Kinstaのコントロールパネル「MyKinsta」なら、ディスク使用量の確認も簡単です。