サーバーはこの機能をサポートしていません。
使いどころ
サーバーがまったく認識できない 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 / Express | res.status(501).end() |
|---|---|
| Python / Flask | return '', 501 |
| nginx | return 501; |
確認方法
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/