该应用程序是基于Node.js的网络爬虫,它通过request
库向远程服务器发出请求。
请求是通过经过身份验证的HTTP代理服务器进行的,其运行时间为99%,并且由第三方供应商提供。
我正在尝试处理HTTP代码以应对可能由代理故障引起的请求错误响应。预计在达到这些HTTP代码的阈值后,将触发代理不可靠的标志,因此代理将排队等待诊断。我希望一些代码能够有更多的重量。
目前我正在为代理处理407(代理身份验证)和408(请求超时)HTTP代码。
是否存在通常由HTTP代理故障引起的其他HTTP代码?
我希望这个问题足够具体。我假设可能的故障(以及一组可能的HTTP错误状态代码)取决于实际代理及其环境。我们应该考虑这些代理黑盒子,因为它们是由第三方提供的。
问题不在于一般的HTTP状态代码,只有错误代码可能是由代理故障(转发代理)引起的。
答案 0 :(得分:3)
根据HAProxy docs(最受欢迎的代理解决方案之一)
Haproxy可能会自行发出以下状态代码 :
- 200访问统计信息页面,以及回复监控请求时
执行重定向时,- 301,具体取决于配置的代码
执行重定向时,- 302,具体取决于配置的代码
- 303执行重定向时,具体取决于配置的代码
- 307执行重定向时,具体取决于配置的代码
执行重定向时,- 308,具体取决于配置的代码
- 400表示无效或过大的请求
- 401,当需要进行身份验证时执行操作(何时 访问统计页面)
403当“阻止”ACL或“reqdeny”过滤器禁止请求时
- 当haproxy遇到不可恢复的内部错误时,
408请求超时在请求之前发生 已完成
- 500,例如a 内存分配失败,这应该永远不会发生
- 502当服务器返回空的,无效的或不完整的响应时,或者当“rspdeny”过滤器阻止响应时。
- 503当没有服务器可用于处理请求时,或者响应与“监视器失败”匹配的监视请求 条件
- 504响应超时在服务器响应之前发生
答案 1 :(得分:0)
"由代理人引起的#34;我基本上都理解包括“#34;网关”在内的所有内容。
这里的技巧是非标准的HTTP错误代码,由提供商专门实现/发明。