すでに投稿された回答はあなたの質問をうまくカバーしていますが、ソースに行くことには何らかの価値があるかもしれないと思いました: rfc 2616
10.3.2 301 恒久的に移動
要求されたリソースには新しい永続的な URI が割り当てられており、このリソースへの今後の参照では、返された URI のいずれかを使用する必要があります。リンク編集機能を持つクライアントは、可能であれば、Request-URI への参照をサーバーから返された 1 つ以上の新しい参照に自動的に再リンクする必要があります。特に明記しない限り、この応答はキャッシュ可能です。
新しい永続的な URI は、応答の Location フィールドで指定する必要があります。リクエスト メソッドが HEAD でない限り、レスポンスのエンティティには、新しい URI へのハイパーリンクを含む短いハイパーテキスト ノートを含める必要があります。
GET または HEAD 以外のリクエストへの応答として 301 ステータス コードを受信した場合、ユーザーが確認できない限り、ユーザー エージェントはリクエストを自動的にリダイレクトしてはなりません。これにより、リクエストが発行された条件が変更される可能性があるためです。
注: 301 ステータス コードを受け取った後に POST リクエストを自動的にリダイレクトする場合、一部の既存の HTTP/1.0 ユーザー エージェントはそれを誤って GET リクエストに変更します。
10.4.5 404が見つかりません
サーバーは Request-URI に一致するものを見つけられませんでした。状態が一時的なものか永続的なものかは示されていません。410 (Gone) ステータス コードは、古いリソースが永続的に利用できず、転送アドレスがないことを内部で構成可能なメカニズムを通じてサーバーが認識している場合に使用する必要があります。このステータス コードは、サーバーが要求が拒否された理由を正確に明らかにしたくない場合、または他の応答が適用できない場合に一般的に使用されます。
もちろん、これらの場合、RFC の実際のテキストよりも一般的な使用法が優先される傾向があります。世界中が一方通行である場合、ドキュメントを指差してもあまり役に立ちません。