web-dev-qa-db-ja.com

無効なフォーム送信でのPOST /リダイレクト/ GET?

Web開発の分野では、フォーム送信のフィールドが無効な場合にも POST/Redirect/GET を実行することをお勧めしますか?

通常、このイベントでは機密トランザクションは発生しません。しかし、それでもなお、POST /リダイレクト/ GETパターンを利用することは良い習慣であるという議論をすることはできますか?

11
Decent Dabbler

RESTの観点からすると、Web会話は次のようになります

GET /例

200 OK-空のフォームHTMLが含まれています

ユーザーがフォームに記入する

POST /例

formfield1 = ok

formfield2 = bad

400 BAD REQUEST-エラーのある入力済みフォームHTMLが含まれています

ユーザーはフォーム送信の問題を特定して修正します

POST /例

formfield1 = ok

formfield2 = fixed

201作成済み-成功メッセージと以降のリンクを含むHTMLが含まれます(RESTクライアントの場合もLocationヘッダー)または200 OKおよび204 NO CONTENTが許容されます

リダイレクトを導入する必要はありません。それを行うと、会話のセマンティクスが壊れます。

10
Gary Rowe

フォームが無効なフィールドでPOSTされた場合、通常、応答として提供したいのは、同じフィールドの母集団を持つ同じフォームといくつかのエラーメッセージであるという理由で、通常はそうは思いません。これはPOST /リダイレクト/ GETを介して実行するのは面倒です-GETによって返されたページがフォームフィールドにユーザーのエントリを既に持っていることをどのように確認しますか?

5
Carson63000