背景:私は、Foosのコレクションに関する情報を表示するウェブサイトを持っているとします。間違った方法を使用し、リソースが存在するかどうかわからない場合、404または405で応答する必要がありますか?
https://example.com/foo/{foo-id}
私だけrespontが要求をGETするために - あなたは、POSTまたはPUTかはFooを削除することはできません:URL:sがフォーム上にあります。特定のIDが実際のFooに対応しているかどうかを確認することは、費用のかかる操作なので、避けたいものです。
質問:/foo/12345
へのPOSTリクエストにどのように応答しますか?理想的なのは、そのようなFooが存在するかどうかを確認することです。そうであれば、405(Method Not Allowed)を送信します。そうでない場合は、404(Not Found)を送信します。しかし、Fooが存在するかどうかを調べることは費用がかかります。私は、正しい方法を使用することさえ気にすることのできない馬鹿にエネルギーを無駄にしたくありません。
それでは、私は2つのオプションが残されています:常に実際にそこに何かがあるかもしれないにも関わらず、404で応答
- 。
- 何かが存在しなくても常に405と応答し、適切な方法で要求を再送信すると、ユーザーエージェントは404で挨拶されます。
どのオプションがHTTP標準に最も近いのですか?その中の誰かが標準に疑問を呈していますか?