500

状態符号 500 (HTTP)

[501] 500 (Internal Server Error) は、側の何らかのエラーにより要求の処理に失敗したことを示す状態符号です。

仕様書

意味

[4] 500 は、が予期せぬ状況に遭遇し要求を満足できなかったことを示します >>2

[502] Webアプリケーションなどで HTTP鯖の内部や HTTP鯖より奥にあるアプリケーションサーバーなどで処理中にエラー (プログラミング言語実行時エラー捕捉されていない例外など) が発生した場合には、 500 応答が返されるのが普通です。

[503] 例えば ApacheCGIスクリプトが結果を返さずにエラー終了したり、 suEXEC のエラーがあったりすると、 500 が返されます。

文脈

[6] クライアントが理解できない、または使いたくない必須の拡張宣言応答に含まれていた場合には、 500 応答が返されたかのように扱うべきです >>5

歴史

[3] RFC 1945 (HTTP/1.0); RFC 2068・RFC 2616 (HTTP/1.1) 10.5.1 500 Internal Server Error

The server encountered an unexpected condition which prevented it from fulfilling the request.

サーバーは予期せぬ状況に遭遇し、 要求を満たすことができませんのです。

[504] RFC 3507 - Internet Content Adaptation Protocol (ICAP) ( ( 版)) http://tools.ietf.org/html/rfc3507#section-4.3.3

[7] RESTful HTTP API - Fedora 4.0 Documentation - DuraSpace Wiki () https://wiki.duraspace.org/display/FEDORA40/RESTful+HTTP+API

500 Error restoring backup

[8] セキュリティ監査で文句を言われないHTTPステータスコードの使い分け - Qiita ( ()) http://qiita.com/kawasima/items/e48180041ace99842779

入力改ざんで発生するバリデーションエラーをそのまま500のHTTPステータスで返すと、攻撃者が「なんか攻撃成功しちゃいそう」って思っちゃうとかなんとかで、監査的なところから「500はやめろ」って言われることがあります。

[9] 誰かに怒られるからやめる、という態度は技術者として恥ずかしくないんだろうか。。。 何故相応しくないかを理解しようとしない人は、何を指定するのが正しいのか永遠に理解できないのではあるまいか。

[10] errors: change timeout errors from 408 to 500 HTTP status code (andreastt著, ) https://github.com/w3c/webdriver/commit/c377c21186f672105a05383d5152e0a3b2a00374