为什么服务器重置 TCP 后用户代理会重新提交请求?

2023-11-23

我们最近注意到一个问题,即某些用户代理会重复相同的 POST 请求,而用户实际上并没有实际触发它两次。

经过进一步研究,我们注意到只有当请求通过负载均衡器并且服务器花了很长时间来处理请求时才会发生这种情况。数据包捕获会话最终显示负载均衡器在 5 分钟超时后通过向客户端发送 TCP Reset 来断开连接;但是,客户端会自动重新提交请求,无需用户干预。

我们在 Java、Firefox 和 IE 8 的 Apache HTTP 客户端中观察到了这种行为。(我无法安装其他浏览器来测试。)这让我认为这种行为是 HTTP 标准的一部分,但这不是很容易谷歌。

此外,似乎只有当第一个请求通过保持活动的 TCP 连接提交时才会发生这种情况。


这是 HTTP 1.1 协议的一部分,用于处理服务器过早关闭的连接。

http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8.2.4.

我经历过类似的情况,我们在几毫秒内多次发布相同的表格。

通过wireshark捕获的数据包确认了浏览器的重新传输,并且来自服务器的日志表明请求的到达。

此外,进一步调查还发现,F5 等负载均衡器报告了重传行为的发生。因此,也值得与您的负载均衡器供应商核实。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么服务器重置 TCP 后用户代理会重新提交请求? 的相关文章

随机推荐

  • 如何阻止 SwiftUI 选择器对其可见区域之外的触摸做出反应?

    我在视图中有一个选择器 我希望将其限制为定义的高度和宽度 虽然下面的代码在视觉上实现了这一点 但选择器响应其区域之外的点击操作 在某些情况下 响应点击附近的按钮 就像我点击将选择器滚动到其值的开头或结尾一样 按钮不会响应点击 选择器会响应
  • MultinomialNB 错误:“未知标签类型”

    我有两个 numpy 数组 X train 和 Y train 其中第一个维度 700 1000 由值 0 1 2 3 4 和 10 填充 第二个维度 700 由值填充值 新鲜 或 腐烂 因为我正在使用烂番茄的 API 由于某种原因 当我执
  • Entity Framework 7 中表和属性的名称不区分大小写

    我使用 Entity Framework 7 和 Npgsql 适配器 EF生成的Sql看起来像 SELECT r Id r Name FROM public Role AS r 它在 Postgres 中不起作用 因为区分大小写的策略 为
  • JavaScript 函数导入不起作用

    我正在尝试从单独的 js 文件导入函数 当我声明导入命令时 页面不执行代码 但是 当我删除导入命令并执行一个简单的警报 Hello 时 页面上会弹出该内容 项目结构 Todo 应用程序 js 两个 js main js index html
  • 有没有办法在 Javascript 中获取所有事件侦听器绑定?

    我正在寻找一种我可以的方法列出所有事件侦听器绑定是在网站上用 JS 或其他脚本 制作的 主要是我想找出双重绑定 出于调试原因 但我想它还有其他问题 杰出的将是浏览器的插件 您可以在网站上看到哪些元素具有哪些类型eventlisteners边
  • 使用 data.table 进行内存分析

    在包含调用的 R 代码中分析内存的正确方法是什么data table功能 假设我想确定表达式期间的最大内存使用量 该参考文献表明Rprofmem可能不是正确的选择 https cran r project org web packages
  • 组合向量和 data.frame 匹配列值和向量值

    I have vetor lt c 1 2 3 data lt data frame id c a b a c a 我需要一个将每个向量值与特定 id 相匹配的 data frame 输出 结果 id vector1 1 a 1 2 b 2
  • CGRect 和 CGPath 的交集

    有没有一种有效的方法来检测 CGPath 和 CGRect 是否相交 我考虑过循环遍历 CGRect 内的每个点 如下所示 for CGPoint point in rect if CGPathContainsPoint path nil
  • C# 5 的“即发即忘”中的异常处理(在 .net 4.5 中)

    考虑以下 一劳永逸 用例 调用者从我的方法请求一些数据 我的方法检查缓存以查看数据是否已经存在 如果不是 它会从源中获取并缓存它 调用者在获取结果之前不需要等待缓存发生 并且如果缓存失败 该方法不应阻止调用者获取结果 我今天所拥有的 看起来
  • 为什么我的 Python 代码为列表中的所有元素提取相同的数据?

    My project consists of making a competitive watch table for hotel rates for an agency It is a painful action that I want
  • 如何查找给定列是否存在唯一键约束

    我正在编写一个 perl 脚本 我需要在其中运行更新查询 但我需要检查 update sql 命令是否不违反唯一键约束 所以如果我有一张桌子tb C1 C2 C3 我的更新查询如下 update tb set C1 b1 where C2
  • 如何在HTML中正确引用本地资源?

    事实证明 引用本地资源可能是一些人的摩擦点 我正在寻找本地资源引用的规范答案及其含义 拿这些例子来说 这些参考路径有什么区别呢 img src myfile png 没有前导斜杠 img src myfile png 带有前导斜杠 img
  • 为什么 n+++n 有效而 n++++n 无效?

    在Java中 表达式 n n 似乎评估相当于 n n 尽管事实上 n是一个有效的一元运算符 其优先级高于算术运算符 运算符在n n 因此编译器似乎假设该运算符不能是一元运算符并解析该表达式 然而 表达式 n n 无法编译 即使有一个有效的可
  • Facebook在iOS6.0中使用SLRequest上传照片无论如何失败

    这是我的 Objc 代码 ACAccountStore facebookaccount ACAccountStore alloc init ACAccountType facebookaccountType facebookaccount
  • 电子邮件附件

    我希望能够附加我生成的文件 即时 我不想将文件保存在我的服务器上 并通过电子邮件发送出去 我已完成所有文本 但不知道如何使用 sendmail 将文件附加到电子邮件 谢谢 See http railscasts com episodes 2
  • Android: onPause() 是否保证在 finish() 之后调用?

    在任何地方都找不到对此问题的可靠答案 我有一个方法 其中调用 finish 然后调用 onPause onPause 是否保证在调用 finish 后被调用 Android一般会调用onPause 如果你打电话finish 在您的 Acti
  • SSL:使用 Python3 的 CERTIFICATE_VERIFY_FAILED

    如果这是一个愚蠢的问题 我深表歉意 但我一直在尝试自学如何使用 BeautifulSoup 以便我可以创建一些项目 我按照此链接作为教程 https www youtube com watch v 5GzVNi0oTxQ 在遵循与他完全相同
  • Android 进程内存使用与电池消耗之间的相关性

    我终于找到了一种获取各个进程的 TotalPss 的方法 现在我关心的是 如何找到每个android进程的电池消耗 如果没有直接的方法找到它 每个进程的内存使用量和电池消耗之间是否有任何相关性 我可以为此研究任何研究论文吗 是的 内存使用量
  • VBScript 内存不足错误

    我有一个由第三方公司构建的经典 ASP CRM 目前 我可以访问源代码并能够进行所需的任何更改 一天中 通常是在用户长时间使用之后 我的大多数页面都会随机出现内存不足错误 应用程序的构建方式是所有页面和脚本都从 Global asp 文件中
  • 为什么服务器重置 TCP 后用户代理会重新提交请求?

    我们最近注意到一个问题 即某些用户代理会重复相同的 POST 请求 而用户实际上并没有实际触发它两次 经过进一步研究 我们注意到只有当请求通过负载均衡器并且服务器花了很长时间来处理请求时才会发生这种情况 数据包捕获会话最终显示负载均衡器在