【问题标题】:Serving large PDF, should I set content-length?提供大型 PDF,我应该设置内容长度吗?
【发布时间】:2017-08-16 15:19:06
【问题描述】:

我动态创建 pdf 文档并希望在我的处理程序中提供它们。我将内容类型设置为 application/pdf 并且它工作正常。我通过 nginx 代理运行我的服务器。

我的问题是某些请求会为同一个文档生成许多其他请求。我查看了标头,发现它需要分块传输编码。

我的解决方案是设置内容长度,它似乎工作正常。

我想知道这是否足够,为什么我从来不用简单的 html 页面。

【问题讨论】:

  • 这可能与您的 nginx 配置有关。客户端不应该关心它是否被分块。

标签: http content-length


【解决方案1】:

A comment in the source code says:

如果处理程序没有预先声明 Content-Length,我们要么进入分块模式,要么,如果处理程序在分块缓冲区大小之前完成运行,我们计算 Content-Length 并将其发送到标头中。

如果您想避免分块,请设置内容长度。为大响应设置内容长度确实会减少传输的数据量,并且可以减少 HTTP 服务器内的复制。

根据经验,如果在生成响应正文之前知道长度,请设置内容长度。

您的简单 HTML 页面可能小于分块缓冲区的大小。如果是这样,它们就没有被分块。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-17
    • 1970-01-01
    • 2013-08-06
    相关资源
    最近更新 更多