リクエストしているクライアントがアクセスできないリソースがあるが、クライアントがアクセスできる代替リソースについて通知したい場合、403 Forbidden
代替リソースの URI をヘッダーまたはコンテンツに含めて送信する必要がありますか? 303 See Other
それとも、アクセス権のあるリソースにリダイレクトを送信するだけですか?
3 に答える
人間がエラーページを見た場合、どのコードを選択してもかまいません。人間が読める形式のエラーメッセージがある場合。人々はコードを無視します。
問題は、マシンに何をさせたいかということです。どのような状況でも、マシンが代替コンテンツに自動的にリダイレクトされるようにしますか?誰かがプログラムでサイトからページをフェッチする正当な理由がある場合、この場合、彼らは代替コンテンツを取得する必要がありますか?または、誰かがキャッシングプロキシサーバーを使用している場合、それを自動的にリダイレクトしたいと思うことはありますか?
そのような状況で自動的にリダイレクトしたくない場合は、403が正解です。人々が適切なコンテンツを入手することを望み、本当に好奇心旺盛なユーザーだけが元のコンテンツが禁止されていることに気を配るのであれば、301または302の方が理にかなっています。
「禁止されていますが、これを見てください」の HTTP コードはありません。
ただし、代替コンテンツへのリンクが存在するように、403 エラー ページをカスタマイズできます。複数の代替リンクがある場合は、このソリューションの方が適している可能性があります。
アクセスが拒否されたことをユーザーに通知することがそれほど重要でない場合は、代わりに 302 (一時的なリダイレクト) を使用するか、ユーザーが禁止されたコンテンツにアクセスできない場合は 301 (永続的なリダイレクト) を使用することをお勧めします。
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
300ファミリーの何かを探していると思います。自動リダイレクトは、403 よりもはるかに使いやすいようです。
さらに、403 はオブジェクトを興味深いものに見せ、より詳細な調査を招く可能性があります。