501 Not Implemented

サーバーはこの機能をサポートしていません。

使いどころ

サーバーがまったく認識できない HTTP メソッド。

よくある原因と対処法

501 は、サーバーがそのリクエストメソッドをどの URL に対しても認識またはサポートしていないことを意味します。WebDAV 非対応のサーバーに送られた PROPFIND のような WebDAV メソッドや、古いサーバーに送られた PATCH などです。メソッド自体は存在するもののその URL では許可されていない 405 とは対照的です。ドキュメントには記載されているが、まだ実装されていないエンドポイントに 501 を返す API もあります。

プロキシや CDN が生成することもあります。珍しいメソッドを拒否するものがあり、またサーバーはサポートしていない Transfer-Encoding には 501 を返さなければなりません。予期せず発生した場合は、curl -X で同じメソッドをオリジンに直接送り、どの層が拒否しているかを確認しましょう。501 はデフォルトでキャッシュ可能なので、エンドポイントがまもなく動き始める予定なら Cache-Control: no-store を付けてください。

サーバーエラー (5xx)

5xx はサーバーエラーです。リクエストに問題がなくても、サーバーやその背後の何かが失敗しています。アラートを設定しておく価値があります。

レスポンスでの表示

HTTP/1.1 501 Not Implemented

返し方

Node.js / Expressres.status(501).end()
Python / Flaskreturn '', 501
nginxreturn 501;

確認方法

curl -s -o /dev/null -w "%{http_code}\n" https://example.com/

HTTP ステータスコードを開く