Http 对于连接错误,我应该返回什么状态代码?

Http 对于连接错误,我应该返回什么状态代码?,http,http-headers,Http,Http Headers,我正在编写一个服务,将另一个请求的数据返回给消费者(例如,从bitly或t.co地址检索未缩短的URL)。在大多数情况下,我可以返回一个状态代码来镜像我从服务器收到的代码,但是当我的服务无法连接到请求的URL(例如,如果它不存在)时,什么状态代码最合适?我在想400错误请求或408请求超时,但这里有最佳实践吗?503服务不可用似乎是一个合适的选择。4xx代码表示客户做错了什么。在您指定的情况下,这是一个服务错误。502坏网关,因为您充当的是代理服务器 超文本传输协议(HTTP)502错误网关服务

我正在编写一个服务,将另一个请求的数据返回给消费者(例如,从bitly或t.co地址检索未缩短的URL)。在大多数情况下,我可以返回一个状态代码来镜像我从服务器收到的代码,但是当我的服务无法连接到请求的URL(例如,如果它不存在)时,什么状态代码最合适?我在想
400错误请求
408请求超时
,但这里有最佳实践吗?

503服务不可用
似乎是一个合适的选择。
4xx
代码表示客户做错了什么。在您指定的情况下,这是一个服务错误。

502坏网关
,因为您充当的是代理服务器

超文本传输协议(HTTP)502错误网关服务器错误响应代码表示服务器在充当网关或代理时收到来自上游服务器的无效响应


我的理由是我的服务运行正常,但客户端试图通过它请求一个不存在的URL,这让我觉得是客户端错误。您如何知道它不存在,或者它没有响应,或者internet连接中断,或者路由表不稳定?当网络崩溃时,我经常从我的公司代理那里得到
50x
错误。“服务不可用”是不可知的——它不知道是否输入了不正确的服务,或者远程服务中是否存在实际缺陷。它只是“不可用”。但是OP建议的情况如何?如果没有响应?@paulimo
503
表示代理服务器本身因维护而停机,或者像过载一样不健康,而
502
表示上游服务器的状态。因此,对于上游服务器没有响应的情况,我将使用
502