PRG(Post Redirect Get)
Overview
POSTメソッドでリクエストを受け取った場合、そのメソッドの処理の終わりに必ずRedirectし、処理後の結果はGetメソッドで呼び出せる画面に返しましょうというデザインパターン。
注意
ただし、APIやAjaxリクエストの場合はリダイレクトせず、JSONレスポンスを返すことが一般的。
メリット
- ユーザー体験を向上させるため ユーザーがフォームを送信した後、そのままページを更新せずに同じページが再送信されると「フォームの再送信エラー」が発生する可能性がある。 これを防ぐために、リダイレクトによって他のページに遷移させるのが一般的。
- RESTfulな設計との親和性 RESTfulな設計では、以下のルールが推奨されます POSTはリソースを作成するリクエストに使用される。 成功後のページ表示はGETリクエストで行われるべき。 リダイレクトを行うことで、RESTful APIの原則へ従った設計になる。