【问题标题】:Possible to send HTTP 1.1 Footers from PHP using Transfer-Encoding: chunked?可以使用传输编码从 PHP 发送 HTTP 1.1 页脚:分块?
【发布时间】:2011-06-24 04:37:26
【问题描述】:

在尝试使用 PHP 中的 gzipped Content-Encoding 手动实现分块传输编码但失败后,我现在又回到了在 Apache 中使用 mod_deflate,它做得很好。

唯一的问题是,我想连同回复一起发送一些页脚(例如,Last-Modified 或 ETag,所以我可以对相同内容进行 304 请求)。 HTTP 1.1 规范在分块响应中提供了页脚(就像标题一样,只是它们排在最后) - 但 PHP 似乎没有提供该功能。

可能吗?

(手动实现很棒——除了我不是 gzip 大师,而且 PHP 提供的各种 zlib 函数不包括创建有效 gzip 块的函数。我设法让它在大约 50% 的时间内工作——但是其他 50% 会坏掉。Doh!)

【问题讨论】:

    标签: php http gzip content-encoding transfer-encoding


    【解决方案1】:

    AFAIK,php 在 post 之后和块编码之前被触发。我知道如何做到这一点的唯一方法是在分块上方安装一个输出处理程序。我只能通过 C 模块或 mod_perl 来做这些事情,因为它允许您在请求的任何位置安装处理程序。我在尝试允许大型上传时遇到了类似的问题,因为 php 直到发布完成后才会触发。所以没有办法检查“它是一个登录用户”或“只允许这个脚本获取大的帖子数据”。

    【讨论】:

      猜你喜欢
      • 2010-11-17
      • 1970-01-01
      • 2013-04-10
      • 2012-08-09
      • 2013-08-13
      • 2017-06-30
      • 2016-11-01
      • 2013-05-08
      • 2011-12-12
      相关资源
      最近更新 更多