Web開発の分野では、フォーム送信のフィールドが無効な場合にもPOST / Redirect / GETを実行することをお勧めしますか?
通常、この場合、機密性の高いトランザクションは発生しません。ただし、それにもかかわらず、POST / Redirect / GETパターンを利用することは依然として良い習慣であるという主張をすることができますか?
Web開発の分野では、フォーム送信のフィールドが無効な場合にもPOST / Redirect / GETを実行することをお勧めしますか?
通常、この場合、機密性の高いトランザクションは発生しません。ただし、それにもかかわらず、POST / Redirect / GETパターンを利用することは依然として良い習慣であるという主張をすることができますか?
回答:
RESTの観点から、Web会話は次のようになります。
GET / example
200 OK-空のフォームHTMLを含む
ユーザーがフォームに入力します
POST /例
formfield1 = ok
formfield2 = bad
400 BAD REQUEST-エラーのあるフォームのHTMLが含まれています
ユーザーがフォーム送信の問題を特定し、修正します
POST /例
formfield1 = ok
formfield2 = fixed
201 CREATED-成功メッセージとオンワードリンク(RESTクライアント用のLocationヘッダーも含む)を含むHTMLまたは200 OKおよび204 NO CONTENTが許容される
リダイレクトを導入する必要はありません。リダイレクトを導入すると、会話のセマンティクスが損なわれます。
フォームに無効なフィールドがPOSTされた場合、通常、応答で提供するのは、同じフィールド数の同じフォームとエラーメッセージであるという理由で、一般的にそうではありません。これは、POST / Redirect / GETを介して実行するのは面倒です-GETによって返されたページのフォームフィールドにユーザーのエントリがすでにあることをどのように確認しますか?