「アイテムが存在しません」ページに最も適切なHTTPステータスコードは何ですか。
ページ自体が存在しない場合、私は明らかに404を使用します。しかし、私のページの1つはuserid
引数(「ユーザーの編集」ページ)を持ち、指定されたユーザーIDのユーザーがいない場合エラーページを表示していますが、4xxステータスヘッダーも送信したいと思います(「200 OK」が実際には収まらないため)。
404は「ファイルが見つかりません」ではなく「見つからない」ので大丈夫だと思いますが、この場合により良いコードがあるのではないかと思います。
あいまいなHTTPエラーコードで過度に巧妙になることは、悪い考えです。ブラウザは、状況を分かりにくくする役に立たない方法で反応することがあります。 404に固執します。
404リターンコードは、実際には「リソースが見つかりません」という意味であり、リクエストは行われたが満たされていないすべてのエンティティに適用されます。そのため、ページ、ページのサブセクション、およびレンダリングする特定の要求があるページに存在するアイテムに対しても同様に機能します。
したがって、このシナリオで使用する適切なコードは404です。それはdoes n't 'server not found'に適用されることに注意してください。これは、要求は発行されたがまったく応答しなかったという異なる状況です。
404は問題ありません。 RFC2616のHTTP/1.1ステータスコード定義
これは、useridがリソース識別子か追加パラメーターかによって異なります。そうであれば、404を返しても構いません。
400 (bad request) ‐ indicates a bad request
または412 (Precondition Failed) e.g. conflict by performing conditional update
無料の詳細情報 InfoQ Explores:REST book。