HTTPエラー500–内部サーバーエラーが平易な英語で説明されています

4xxの範囲のエラーコードは、あなたまたはあなたのブラウザが何か間違ったことをしたことを意味します。ログインしていないか、許可されていないものにアクセスしようとしたか、単に道に迷った可能性があります。

ただし、5xxの範囲のエラーコードは、エラーが完全に手に負えないことを意味します(サーバー開発者/管理者でない限り)。おそらく、インターネット上で遭遇する可能性のある2番目に*最も苛立たしいエラーコードは、恐ろしい500です。

どういう意味ですか?

簡単に言えば、サーバーは何かをしようとして失敗しました。

RFC 7231によると:

500(内部サーバーエラー)ステータスコードは、サーバーが予期しない状態に遭遇したために要求を実行できなかったことを示します。

これの原因は本当に何でもありえます!

バックエンドにLaravelPHPAPIを使用してWebサイトにアクセスしていると想像してみてください。

500エラーをスローするのerror_logは、文字列ではなく配列をログに記録しようとする誤ったもののような単純なものである可能性があります。これは、リクエストとはまったく関係ありませんが、PHPがスローして、サーバーに対して行ったリクエストを強制終了するエラーです。

通常、デプロイ前に(うまくいけば)捕まえるのと同じくらい些細なことですが、これは、Webサイトまたはアプリのユーザーとして、エラーが本当にあなたの手の届かないところにあることを示しています。

どのように修正しますか?

サーバーにアクセスできないユーザーとして、実際には次のオプションしかありません。

それ以外の場合は500が返されることをサイト所有者に通知します

問題のリソースにアクセスできるはずであると完全に期待しているが、このエラーが表示されている場合は、サイトの背後にいるチームに通知することをお勧めします。

開発者/サポートチームに、あなたがやろうとしていたことについてできるだけ多くの情報を提供して、問題をすばやく再現してバグを追跡できるようにしてください。

特に役立つ、または好奇心が強い場合は、ブラウザの開発者ツールの[ネットワーク]タブでさらに多くの手がかりを探すことができる場合があります。

Firefoxでは、ショートカットキーを使用して[ネットワーク]タブを開くことができますctrl + shift + E。Chromeでは、で開発ツールを開き、ctrl + shift + I[ネットワーク]タブを選択できます。

このタブを開いた状態で、リクエストを再試行し、ネットワーク出力で500リターンコードを探します。直面した問題を説明する、もう少し詳細なサーバー応答が表示される場合があります。その情報を開発者に提供して、問題の解決をスピードアップすることができます。

開発者の場合は、バグを探して修正する必要があります。それは何でもよいので、私はあなたにそれをする方法を教えることができません。ただし、開発に不慣れな場合は、問題が何であるかがまだ明らかでない場合は、最初にサーバーログで手がかりを探すことをお勧めします。

しっかり座って

問題を報告したので、合理的にできることはすべて実行しました。

*実際に遭遇する最も苛立たしいエラーコードは何であるか疑問に思っていますか?418:私はティーポットです。これを実際のエラーとして見つけた場合は、開発者がこれをエラー応答として実装しようと努力したことを意味しますが、これは冗談であり、情報を提供しません。それは起こります。

実際のクライアント側のエラーに応答して418を返さないことを約束する場合は、Twitter @ JacksonBatesで私と連絡を取り合うことを歓迎します。