TCP层出错时的HTTP响应码
HTTP Response code when there is a error in TCP layer
我有一个 python 函数,它在服务器上执行 HTTP 调用以执行业务逻辑。在python 函数中对服务器的Http 调用是通过使用以下library 的重试机制实现的。该库有助于根据 'status_forcelist' 中传递的 Http 状态代码重试 http 请求。我有点不确定 HTTP 统计代码是否存在 TCP 错误和可能的 HTTP 状态代码,由于网络层中的错误,可以额外添加到 'status_forcelist'列表。
如果没有收到Http状态码但抛出异常,这种情况下应该如何处理retiaries
事实上,在网络堆栈中,每个协议都有一个级别的责任,较高的协议只是假设较低的级别可以完成他们的工作。例如,TCP 保证所有数据包都以正确的顺序接收,但并不真正关心数据包的内容:较低级别的协议(以太网上的 HDLC)应该已经处理了它。事实上,要么 TCP 数据包在较低级别是正确的,要么它不会被传送,TCP 的重发部分会要求发送方再次发送它。如果无法恢复,TCP 连接将被中止。
在更高级别 (HTTP) 上,它会给出连接或读取错误。这些由 urllib3 模块明确处理,它允许程序员决定每次连接、读取或协议错误(and/or 总错误)以及连接和读取(或总)超时的重试次数。
我有一个 python 函数,它在服务器上执行 HTTP 调用以执行业务逻辑。在python 函数中对服务器的Http 调用是通过使用以下library 的重试机制实现的。该库有助于根据 'status_forcelist' 中传递的 Http 状态代码重试 http 请求。我有点不确定 HTTP 统计代码是否存在 TCP 错误和可能的 HTTP 状态代码,由于网络层中的错误,可以额外添加到 'status_forcelist'列表。
如果没有收到Http状态码但抛出异常,这种情况下应该如何处理retiaries
事实上,在网络堆栈中,每个协议都有一个级别的责任,较高的协议只是假设较低的级别可以完成他们的工作。例如,TCP 保证所有数据包都以正确的顺序接收,但并不真正关心数据包的内容:较低级别的协议(以太网上的 HDLC)应该已经处理了它。事实上,要么 TCP 数据包在较低级别是正确的,要么它不会被传送,TCP 的重发部分会要求发送方再次发送它。如果无法恢复,TCP 连接将被中止。
在更高级别 (HTTP) 上,它会给出连接或读取错误。这些由 urllib3 模块明确处理,它允许程序员决定每次连接、读取或协议错误(and/or 总错误)以及连接和读取(或总)超时的重试次数。