画面のURLのHTTPステータスコードを考察しよう!
ステータスコードを整理しよう!
200 OK
通常のView表示です。正常に処理が行われました。
400 BadRequest
URLのQueryStringが異常な場合などに利用したりします。
QueryStringの異常の場合、Not Foundを使っても違和感がないと思うので、使うかどうかは検討してください。
403 Forbidden
アクセス権限がない場合にWebサーバーが返します。
サイト側の実装としては、ユーザのランクや権限に応じてアクセスできない場合、このステータスを返す設計をすることもあります。
404 NotFound
よく知られたステータスコードです。
静的なリソースファイルが存在しない場合、Webサーバーが返します。
Controller、Actionへのルーティングができなかったときに、フレームワークが返します。
パラメータをURLに含めるURL設計の場合、対象のパラメータのデータが存在しなかったときに、プログラムにて自前で返す場合もあります。
405 Method Not Allowed
GETしか受け付けないURLでPOSTでアクセスがあった、など、ルーティングできない場合に、フレームワークによっては、フレームワークが勝手に返します。
400 BadRequestが利用されることもあります。
500 InternalServerError
プログラムで例外が発生し、フレームワークで処理されなかった場合、Webサーバーが返します。
共通エラーハンドラーでプログラムで処理した場合でも、エラー画面を表示するときにはこのステータスで返します。
503 ServiceUnavailable
メンテナンスモードです。
フレームワークで対応するのかWebサーバーで対応するのか、要検討してください。
考察
QueryStringなどの入力値異常をBad RequestとするのかNot Foundとするのか、方針を統一しておくといいと思います。