<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="501" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[501]</anchor-end> <dfn><code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">500</anchor></code></dfn> (<dfn><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Internal Server Error</anchor></dfn>)
は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鯖</anchor>側の何らかのエラーにより<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要求</anchor>の処理に失敗したことを示す<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">状態符号</anchor>です。</p><section><h1>仕様書</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <strong><cite xml:lang="en">RFC 7231 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</cite> (<time>2014-08-07 05:54:02 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://tools.ietf.org/html/rfc7231#section-6.6.1">https://tools.ietf.org/html/rfc7231#section-6.6.1</anchor-external></strong></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <cite xml:lang="en">RFC 2774 - An HTTP Extension Framework</cite> (<time>2014-09-08 03:36:50 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc2774#section-6">http://tools.ietf.org/html/rfc2774#section-6</anchor-external></li></ul></refs></section><section><h1>意味</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">500</anchor></code> は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鯖</anchor>が予期せぬ状況に遭遇し<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要求</anchor>を満足できなかったことを示します
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="502" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[502]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webアプリケーション</anchor>などで <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP鯖</anchor>の内部や 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP鯖</anchor>より奥にある<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーションサーバー</anchor>などで処理中にエラー
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラミング言語</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実行時エラー</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">捕捉</anchor>されていない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">例外</anchor>など) 
が発生した場合には、 <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">500</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応答</anchor>が返されるのが普通です。</p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="503" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[503]</anchor-end> 例えば <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Apache</anchor> で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CGIスクリプト</anchor>が結果を返さずにエラー終了したり、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">suEXEC</anchor> のエラーがあったりすると、 <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">500</anchor></code> が返されます。</p></example></section><section><h1>文脈</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント</anchor>が理解できない、または使いたくない必須の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">拡張宣言</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応答</anchor>に含まれていた場合には、
<code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">500</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応答</anchor>が返されたかのように扱う<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">べきです</strong></anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;5</anchor-internal></src>。</p></section><section><h1>歴史</h1><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> RFC 1945 (HTTP/1.0); RFC 2068・RFC 2616 (HTTP/1.1) 10.5.1 500 Internal Server Error</figcaption><blockquote><p>The server encountered an unexpected condition which prevented it
from fulfilling the request.</p></blockquote><p>サーバーは予期せぬ状況に遭遇し、
要求を満たすことができませんのです。</p></figure><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <cite xml:lang="en">RFC 7252 - The Constrained Application Protocol (CoAP)</cite>
( (<time>2014-06-27 00:59:37 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc7252#section-5.9.3.1">http://tools.ietf.org/html/rfc7252#section-5.9.3.1</anchor-external></li></ul></refs><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="504" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[504]</anchor-end> <cite xml:lang="en">RFC 3507 - Internet Content Adaptation Protocol (ICAP)</cite>
( (<time>2014-06-08 07:17:07 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc3507#section-4.3.3">http://tools.ietf.org/html/rfc3507#section-4.3.3</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> <cite>RESTful HTTP API - Fedora 4.0 Documentation - DuraSpace Wiki</cite>
(<time>2017-03-02 23:35:39 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://wiki.duraspace.org/display/FEDORA40/RESTful+HTTP+API">https://wiki.duraspace.org/display/FEDORA40/RESTful+HTTP+API</anchor-external></figcaption><blockquote><p>500 Error restoring backup</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> <cite>セキュリティ監査で文句を言われないHTTPステータスコードの使い分け - Qiita</cite>
( (<time>2017-07-27 02:48:55 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://qiita.com/kawasima/items/e48180041ace99842779">http://qiita.com/kawasima/items/e48180041ace99842779</anchor-external></figcaption><blockquote><p>入力改ざんで発生するバリデーションエラーをそのまま500のHTTPステータスで返すと、攻撃者が「なんか攻撃成功しちゃいそう」って思っちゃうとかなんとかで、監査的なところから「500はやめろ」って言われることがあります。</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> 誰かに怒られるからやめる、という態度は技術者として恥ずかしくないんだろうか。。。
何故相応しくないかを理解しようとしない人は、何を指定するのが正しいのか永遠に理解できないのではあるまいか。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> <cite xml:lang="en">errors: change timeout errors from 408 to 500 HTTP status code</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">andreastt</anchor>著, <time>2018-08-21 18:40:30 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/w3c/webdriver/commit/c377c21186f672105a05383d5152e0a3b2a00374">https://github.com/w3c/webdriver/commit/c377c21186f672105a05383d5152e0a3b2a00374</anchor-external></p></section></body></html>