Web 客户机-服务器数据交换持久性-更新
假设我有一个客户端,它向服务器发送一些带有输入的RunLogicCommand。服务器响应一些输出,这些输出是供用户验证的报告。此时,服务器还没有保存任何内容。然后,客户机在一个单独的SaveCommand中发回整个报告,该命令将保存报告数据 对我来说,这种交流的某些部分似乎是不必要的。也就是说,一旦用户验证了报告,他们似乎就没有必要将整个报告发送回服务器进行持久化。也许这里也有可能暴露一些敏感数据 在这种情况下,典型的方法是什么 我可以看到两种选择:Web 客户机-服务器数据交换持久性-更新,web,caching,architecture,client-server,cqrs,Web,Caching,Architecture,Client Server,Cqrs,假设我有一个客户端,它向服务器发送一些带有输入的RunLogicCommand。服务器响应一些输出,这些输出是供用户验证的报告。此时,服务器还没有保存任何内容。然后,客户机在一个单独的SaveCommand中发回整个报告,该命令将保存报告数据 对我来说,这种交流的某些部分似乎是不必要的。也就是说,一旦用户验证了报告,他们似乎就没有必要将整个报告发送回服务器进行持久化。也许这里也有可能暴露一些敏感数据 在这种情况下,典型的方法是什么 我可以看到两种选择: 用户只是再次发送带有输入的runlogic
谢谢 这里没有单一的最佳解决方案: 您首先提到的方法的缺点是:
- 网络流量增加,成本可能增加,响应速度变慢
- 您能确定您发送的文件与收到的文件相同吗。你可以,但这需要额外的工作
- 正如您所提到的,敏感数据暴露的风险增加了。但是,您正在将其发送到客户端
- 运行两次报告会增加服务器上的负载,由于需要更多的处理能力,因此会产生额外的成本
- 如果两个请求之间的基础数据发生了更改。然后,用户验证的报告和存储在数据库中的报告可能不相同
- 生成报告后立即将其存储在数据库中,状态为“等待用户验证”
- 当用户验证报告时,将状态更新为已验证
- 为了避免数据库中有许多未验证的报告,可以使用批处理作业来检查和删除所有早于x天的未验证报告