サイトが表示されなくなると、原因がわからず対応に困ることがあります。しかし、問題を解決するには、まず原因を特定することが重要です。

今回は、クライアントから送信された無効または破損したリクエストに関連する400番台のステータスコードの中から、「HTTP 400 Bad Reques」エラーを取り上げます。HTTP 400エラーの意味や発生原因、そして問題を解決するための具体的な対処方法をご紹介します。

HTTP 400エラーの解決方法について、動画での解説もご用意しています

「HTTP 400 Bad Request」エラーの原因

HTTP 400エラーが発生する原因はさまざまです。特定のブラウザやOSに特有のものではなくても、解決方法は原因によって若干異なります。

エラーコード 400 Bad Request
エラーの種類 クライアントサイド
エラーメッセージの例 HTTP Error 400
HTTP Error 400 – Bad Request
HTTP Status 400 – Bad Request
HTTP Error 400. The request hostname is invalid
400 Bad Request
400 Bad Request. Request Header Or Cookie Too Large
Bad Request – Error 400
Bad Request – Invalid URL
エラーの原因 URLの構文エラー
ブラウザキャッシュとCookieの破損
DNSキャッシュ
ファイルサイズが大きすぎる
一般的なサーバーエラー

1. URLの構文エラー

HTTP 400エラーは、URLの入力ミスや構文の誤り、URLに使用できない文字が含まれていることなどが原因で発生することがあります。

このような問題は意外と起こりやすく、例えばURLのエンコードが正しく行われていない場合にも発生します。以下のリンクは、サーバーが処理できない文字を含むURLの例です。このようなURLにアクセスすると、400 Bad Requestエラーが返されます。

https://twitter.com/share?lang=en&text=Example%20of%20malformed%%20characters%20in%20URL

URLの「malformed」の直後に余分な「%」が含まれている点に注目してください。スペースは通常「%20」とエンコードされますが、この例では誤って「%%20」となっています。そのため、Chromeでは以下のようにHTTP 400エラーが表示されます。

また、URLに使用できない文字が含まれている場合にも発生します。例えば、以下のURLには使用できない「{」が含まれているため、同様のエラーが返されます。

https://twitter.com/share?lang=en&text=Example%20of%20malformed{%20characters%20in%20URL

2. ブラウザキャッシュとCookieの破損

URLに誤りがなくても、ブラウザのキャッシュファイルの破損や、期限切れまたは破損したCookieが原因で、HTTP 400エラーが発生することがあります。

WordPressサイトの管理画面にログインしようとした際、前回のログインから時間が経過した後にHTTP 400エラーが表示されたことがあるかもしれません。これは、ログイン認証情報を保持するCookieが破損し、管理者権限を持つ正当なユーザーとして認証できなくなっていることが原因です。

その結果、接続が拒否され、HTTP 400エラーが返されます。

3. DNSキャッシュ

あるいは、ローカルに保存されているDNSデータが、設定されているDNS情報と同期していないことも考えられます。

ドメインは、IPアドレスのエイリアスであり、IPアドレスは、接続したい特定のサーバーを呼び出す電話番号のような役割を担います。サイトに初めて訪れると、名前解決(ドメイン名に対応するサーバーの特定のIPアドレスを調べる)と呼ばれる検索処理が行われます。

読み込みの高速化を考慮し、この処理を次回以降行わなくて済むよう、詳細がコンピュータのローカルDNSキャッシュに保存されます。この仕組みは、HTML、CSS、JavaScript、メディアなどに対するブラウザのキャッシュと考えるとわかりやすいです。

4. ファイルサイズが大きすぎる

アップロード制限を超える大きなファイルをサイトにアップロードしようとした時にも、400エラーが発生することがあります。これについては、設定されたサーバーのファイルサイズ制限が関係してきます。

ここまでが、クライアント側の問題によって発生するケースです。

5. 一般的なサーバーエラー

HTTP 400エラーは、稀にサーバー側の問題を示していることもあります。具体的には、サーバーの一般的な問題、不具合、あるいは不特定多数の一時的な問題など。

他の人のウェブサイトにアクセスしようとしてこのエラーが発生した場合、残念ながら手の施しようはありません。定期的にブラウザを更新してサイトを訪れつつ、サイト運営者がトラブルシューティングを行うことを待つしかありません。

このエラーがサーバー側の問題に起因しているかどうかを見極めるには、別のブラウザでサイトを開いてみてください。システム固有の問題を排除するために、別のマシン/デバイスで開いてみるのも有効です。

別のブラウザ、コンピュータ、OS、デバイスを使用してもサイトにアクセスできない場合は、サーバー側のエラーである可能性が高いです。可能であれば、サイト運営者に問題を報告し、エラー発生時に使用していたOS、ブラウザ、バージョンなどの情報を共有してみてください。

ブラウザ別「HTTP 400 Bad Request」エラーの見え方

HTTP 400エラーは通常、クライアント側の問題に起因します。Chromeでは、以下のように表示されます。

Chromeの「HTTP 400 Bad Request」エラー
Chromeの「HTTP 400 Bad Request」エラー

以下、Chrome以外のブラウザでの表示もいくつか見てみましょう。

Firefox

Firefoxの「HTTP 400 Bad Request」エラー
Firefoxの「HTTP 400 Bad Request」エラー

Safari

Safariの「HTTP 400 Bad Request」エラー
Safariの「HTTP 400 Bad Request」エラー

Microsoft Edge

Microsoft Edgeの「HTTP 400 Bad Request」エラー
Microsoft Edgeの「HTTP 400 Bad Request」エラー

このように、どのブラウザでもエラー解決の手がかりとなるようなメッセージは表示されず、自分で解決策を探るのは困難です。FirefoxとSafariに至っては、ウィンドウが真っ白になり、これが400エラーであるかどうかの判断すら難しいところです。

HTTP 400エラーの原因や見え方がわかったところで、次にこのエラーの解決方法を詳しく見ていきましょう。

「HTTP 400 Bad Request」エラーの解決方法

「HTTP 400 Bad Request」エラーを解決するために、以下順を追ってトラブルシューティングしていきます。

手順は以下の通りです。

なお、解決方法をご紹介する前の注意点として、これからご紹介する手順で、ローカルにキャッシュされたデータをクリアすることになります。

お使いのコンピュータに保存されたキャッシュをクリアすると、接続エラーを大幅に抑えられる可能性があります。

しかし、キャッシュには表示速度の向上など多くのメリットがあり、ブラウザでキャッシュが利用されていなければ、サイトの閲覧体験は大きく損なわれます。例えば、エッジキャッシュを利用すると、ページ全体をブラウザに配信する時間を50%以上短縮できる場合があります。

つまり、キャッシュはパフォーマンスの最適化とユーザー体験のバランスを取るための仕組みです。サイトをできるだけ高速に表示する一方で、まれにHTTP 400エラーのような問題が予期せず発生することもあります。

1. 送信されたURLを確認する

まずは、URLから確認していきましょう。ブラウザにURLを手入力する際に、入力ミスが生じている可能性があります。

ドメイン名とアクセスしようとしているページが正しく入力されていること、また文字列がスラッシュ(/)で適切に区切られていることを確かめてください。特殊文字が含まれている場合は、正しくエンコードされていること、そしてURLに使用可能な文字であることの確認もお忘れなく。

長いURLであれば、オンラインURLエンコーダー/デコーダーを使用すると、URL内の不正な文字を自動検出することができて便利です。

URLが正しいことを確認したら、ブラウザで再度アクセスしてみてください。まだエラーが表示される場合は、次のステップに移りましょう。

2.ブラウザのキャッシュをクリアする

ローカルに保存されているウェブサイトのファイルが破損していると、HTTP 400エラーを引き起こすことがあります。

これには、サイトの実行に必要な以下すべてのファイルが含まれます。

  • HTML
  • JavaScript
  • テキスト/設定ファイル
  • CSS
  • メディア(画像、動画、音声)
  • データファイル(XML、JSON)

上記ファイルは、サイトに訪れるとブラウザによってコンピュータに保存されます。

これに対するトラブルシューティング方法は、ブラウザキャッシュをクリアすることです。

Chromeの場合は、右上の3つの点をクリックし、「閲覧履歴データを削除…」を選択します。

Chromeで閲覧履歴データを削除
Chromeで閲覧履歴データを削除

表示される「閲覧履歴データを削除」ウィンドウで、「キャッシュされた画像とファイル」を選択し、「データを削除」をクリックします。

上部にある項目から期間を選択して最近のファイルのみを削除することも可能ですが、破損しているファイルを確実に削除するため、「もっと見る」ドロップダウンから「全期間」を選択して、すべてのファイルを削除することをおすすめします。

Google Chromeで閲覧履歴データを削除
Google Chromeで閲覧履歴データを削除

Chrome以外の主要ブラウザ(Mozilla Firefox、Safari、Microsoft Edge、Opera)でキャッシュをクリアする方法はこちらをご覧ください。

3. ブラウザのCookieを削除する

キャッシュをクリアしてもエラーが消えない場合には、Cookieも削除してみましょう。ひとつのウェブサイトで何十種類ものCookieが保存されていることがあり、そのうちひとつでも有効期限が切れていたり、破損していたりすると、400エラーの原因になり得ます。

ChromeでCookieを削除するには、先ほどと同じ右上の3つの点をクリックして、「閲覧履歴データを削除…」を選択します。

Cookieと他のサイトデータ」を選択して、「全期間」を選択してください。これで、すべてのCookieが削除されます。

Google ChromeでCookieを削除
Google ChromeでCookieを削除

Cookieを削除したら、エラーが発生していたサイトに再度アクセスしてみてください。Cookieを使用しているサイトなら、Cookieの破損や期限切れが原因のエラーは一般的であり、これで解決する可能性があります。

Chrome以外の主要ブラウザでCookieを削除する方法はこちらをご覧ください。

4. サーバーのファイルアップロード制限

サーバーのアップロード制限を超える大きなファイルをサイトにアップロードしようとしても、400エラーが発生する可能性があります。

これにはまず、小さいファイルをアップロードしてみてください。問題なくアップロードできれば、最初にアップロードしようとしたファイルが大きすぎる可能性が高く、再度アップロードする前に何らかの方法でサイズを縮小してください。

ファイルの種類にもよりますが、画像、動画、音声ファイルを圧縮する方法は、オンラインで多数見つかるはずです。

5. DNSキャッシュをクリアする

HTTP 400エラーの原因として、ローカルのDNSキャッシュが破損している、または古いことも考えられます。

DNSデータは、ブラウザではなくオペレーティングシステムに保存されます。WindowsとmacOSのDNSキャッシュをクリアする方法はこちらをご覧ください。

6. ブラウザの拡張機能を無効にする

最後に、もしサイトのCookieに影響を与える拡張機能がブラウザにインストールされている場合は、これが原因になっている可能性もゼロではありません。一時的に拡張機能を無効化して、変化があるかどうかを確認するため、再度サイトにアクセスしてみてください。

この手順は、上記5つのトラブルシューティングを行なってもエラーが解決しない場合には、試す価値ありです。

まとめ

今回ご紹介したとおり、「HTTP 400 Bad Request」エラーには、さまざまなトラブルシューティング方法があります。

HTTP 400エラーは、ほとんどの場合、クライアント側のリクエストまたはローカルキャッシュに問題があることを意味します。今回取り上げた解決策は、最低限の知識さえあれば、誰でも簡単に実行できるものばかり。すぐにブラウジングを再開できるはずです。

場合によっては、一般的なサーバーの問題を示しているかもしれません。これを確かめるには、別のデバイスでサイトにアクセスしてみてください。サーバー側のエラーと予想される場合は、残念ながらこちら側でできることはほとんどありません。サイト管理者にエラーを報告し、その後エラーが解決されるまで、定期的にサイトを訪れてみてください。

Matteo Duò

Marketing Consultant for WordPress plugin developers.