dfe*_*ens 12 apache tcp ruby-on-rails http disconnect
假设以下场景:
在这种情况下,我们遇到以下情况: - 客户端不知道他的数据是否有效并且插入正确 - Web服务器(rails 3.2应用程序)没有显示任何异常,无论它是否在apache代理后面
我找不到如何在HTTP文档中处理这种情况.我的问题是:
a)客户应该期望他的数据可以处理吗?(然后尝试例如GET请求来检查数据是否已经提交)
b)如果不是(a) - 应该服务器检测到它吗?是否有可能在铁轨中做到这一点?在这种情况下,可以改变变化.在这种情况下,我希望从铁路应用中得到一些预期,但没有......
HTTP是一种无状态协议:根据定义,您无法在客户端知道http-verbPOST
是否成功.
Web应用程序使用一些技术来克服此HTTP"功能".他们包括.
但是,这些都不会对您的问题有所帮助.当我在过去遇到这些类型的问题时,它们几乎总是服务器花费太长时间处理Web请求的结果.
有一个非常好的引用,我在不眠之夜耳语:
"网络请求是一个可怕的地方,你想尽可能快地进出" - 里克布兰森
您希望在100 - 500毫秒内进入和退出Web请求.您满足这些数字,您将拥有一个表现良好/与Web服务器良好协作的Web应用程序.
为此,我建议你调查你的帖子花了多长时间,并弄清楚如何缩短这些请求.如果您在进行dbms插入之前在服务器端进行了一些严肃的处理,那么您应该考虑将它们交给某种任务/排队系统.
"严肃处理"的一个例子可能是某种图像上传,可能在上传后进行一些图像处理.任务和排队解决方案的一个例子是:RabbitMQ和Celery
您的问题的示例解决方案可能是:
收紧这些网络请求,这将是您客户未收到回复的罕见日子.
在那个罕见的日子里,客户端没有收到数据:你如何防止多个帖子......我对你的数据一无所知.但是,您可以执行一些与架构相关的操作来唯一标识您的帖子.即如果数据是a update
或a ,则在服务器端计算出来create
.
这个答案涵盖了一些您可以使用的轮询/流媒体/ websockets技术.
归档时间: |
|
查看次数: |
1970 次 |
最近记录: |