【问题标题】:What is the difference between HTTP 408 and 504 errors?HTTP 408 和 504 错误有什么区别?
【发布时间】:2016-07-23 09:50:58
【问题描述】:

这些都是超时错误,但谁在 408 和 504 中超时?

来自w3,408定义为:

在服务器准备等待的时间内,客户端没有产生请求。客户端可以在以后的任何时间重复请求而无需修改。

...而 504 是:

服务器在充当网关或代理时,没有收到来自它需要访问的 URI(例如 HTTP、FTP、LDAP)或其他一些辅助服务器(例如 DNS)指定的上游服务器的及时响应正在尝试完成请求。

如果不是中间服务器,那么 408 中的“客户端”是谁?如果是实际的最终用户,服务器如何知道在他们发出请求之前等待他们的请求?

【问题讨论】:

  • 您正在查看一个非常过时的规范;它已被 RFC 7230...5 取代。
  • @JulianReschke 我在这里找不到任何提及 408 或 504 的内容:tools.ietf.org/html/rfc7230 你指的是这个吗?
  • 状态码在 RFC 7231 中定义(该规范已分为多个 RFC)。
  • @JulianReschke 太好了,谢谢。这些新定义看起来确实与我非常相似,如果您对它们与旧定义之间的差异有任何想法,我很想听听。

标签: http timeout http-status-code-504 http-status-code-408


【解决方案1】:

客户端是浏览器或客户端应用程序。服务器知道等待请求是因为它已经接受了连接,或者已经读取了请求的一部分,比如一两个标头。

【讨论】:

  • 如果服务器收到请求但响应超时,我会收到什么http状态?
【解决方案2】:

亚马逊文档告诉:http://docs.aws.amazon.com/en_en/elasticloadbalancing/latest/classic/ts-elb-error-message.html#ts-elb-errorcodes-http408

表示客户端取消请求或发送完整请求失败

Mozilla 文档告诉:https://developer.mozilla.org/en/docs/Web/HTTP/Status/408

HTTP 408 Request Timeout 响应状态码表示服务器想要关闭这个未使用的连接。它是由某些服务器在空闲连接上发送的,即使客户端之前没有任何请求

【讨论】:

    猜你喜欢
    • 2016-02-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-03
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    • 2018-12-15
    • 2019-04-28
    相关资源
    最近更新 更多