【问题标题】:Abort HTTP chunk encoded response with Error Page使用错误页面中止 HTTP 块编码响应
【发布时间】:2015-01-17 02:18:54
【问题描述】:

我正在扩展上一个问题:Aborting a HTTP/1.1 chunk encoded response

当我中止分块响应时,Chrome 显示一个空白页面,并且开发控制台报告 net::ERR_INCOMPLETE_CHUNKED_ENCODING。 IE 显示不完整的页面。有没有办法将用户发送到实际的 500 错误页面?

我可以输出一些会破坏文档的内容以使浏览器无法使用它吗?如果是这样,我可以发送的最短字符串是什么?

【问题讨论】:

    标签: http chunked-encoding


    【解决方案1】:

    不幸的是,您无法向浏览器发送任何块“嘿,忘记我到目前为止发送的所有内容 - 出了点问题”。发送 TCP 重置数据包会导致大多数浏览器显示“服务器重置连接”页面,但这需要访问网络堆栈的下一层。

    我能想到的唯一其他方法是尝试发送一个负长度的块。我不知道浏览器对此有何反应。

    【讨论】:

    • 有没有办法通过 PHP 发起 TCP 重置?也许通过调用 Apache 函数或 exec 之类的?
    【解决方案2】:

    这是我发现的一些有趣的东西。我不确定它是否应该在这里应用,但供考虑:

    HTTP Trailer 标头可能是在响应后插入无效标头的一种方式。

    Trailer 通用字段值表示给定的头部集合 字段存在于使用分块编码的消息的预告片中 传输编码。

    另一个考虑因素是Content-MD5 标头。中止的响应将无法验证。我不确定浏览器如何处理这个问题。

    【讨论】:

      猜你喜欢
      • 2011-05-09
      • 1970-01-01
      • 2013-06-08
      • 1970-01-01
      • 2012-01-03
      • 2013-08-13
      • 1970-01-01
      • 2017-05-16
      • 1970-01-01
      相关资源
      最近更新 更多