RESTful SOAで、AJAXを介してPOSTリクエストを発行したが、リクエストがタイムアウトする前に応答を受け取らなかったとします。さらに、リクエストの再送信は有害であると想定します。POSTはべき等ではありません。たとえば、銀行振込を投稿している場合があります。応答がない場合は、サーバーが要求を処理したかどうかわかりません。
クライアント側とサービス側を制御できると仮定して、これに対処するためのベストプラクティスは何ですか?
私の最初の考えは、各POSTリクエストにナンス(つまり、疑似ID、ある種の一意の識別子)を含めることです。たとえば、If-None-Matchヘッダーの値などです。このアプローチでは、クライアント側はプログラムで同じ疑似IDを使用してタイムアウトした要求を再発行でき、サーバーは繰り返し値が含まれている場合にそれを拒否できます。