【问题标题】:"Range:" http header causes hang in ColdFusion app“范围:”http 标头导致 ColdFusion 应用程序挂起
【发布时间】:2013-05-17 15:14:00
【问题描述】:

每当我在对服务器上的 .cfm 或 .cfc 文件的 HTTP 请求中添加“范围”标头时,都会出现超时。服务器根本没有响应。

为了调试,我在服务器上创建了一个名为“/signup/test.cfm”的空白文件。它什么都没有。接下来,我对文件进行正常请求和编辑请求:

Request:
GET /signup/test.cfm HTTP/1.1
Host: site.com

Response:
HTTP/1.1 200 OK

Request:
GET /signup/test.cfm HTTP/1.1
Host: site.com
Range: bytes=0-40960

Response:
timeout in transmission from site.com

如果我在对静态文件的请求中包含 Range 标头,则没有问题。

这可能是什么原因造成的,我该如何调试它?我请求的文件是空的,所以不应该执行任何代码。 Application.cfc 为空。由于我假设没有代码正在执行,这是否意味着这是服务器配置问题?

编辑:通过向我的脚本添加标签,我已经确认它确实执行了 ColdFusion 代码。响应永远不会发回给我。

【问题讨论】:

  • 您使用的是哪个网络服务器?你能告诉我们你是如何添加范围标题的吗?
  • @Miguel-F 服务器:Microsoft-IIS/7.5
  • @Miguel-F 我正在通过名为“Burp Suite”的代理添加范围标头,该代理可以即时编辑请求,但我可以使用其他工具复制它。
  • 问题可能是您正在请求一个空文件(即 0 字节)?你可以在修改你的 .cfm 文件以包含一些内容后尝试请求吗,即使它只是静态内容?
  • 好的,我看看能不能找到什么。顺便说一句,我想我找到了一篇关于如何在 ColdFusion 中实现这一点的不错的帖子,假设我们可以让它做出响应。它包含一个处理 Range 请求的函数:Media Delivery to iPhones and iPads

标签: coldfusion http-headers timeout railo


【解决方案1】:

cf 解析器很可能无法处理范围请求,而静态文件处理程序则可以。

Range 用于获取部分内容并随后获取更多内容。例如。视频文件流式传输或下载继续。脚本处理程序不容易处理的事情,因为请求意味着一次全部返回。

这是一个带有示例范围请求的 stackoverflow,以展示其工作原理 Sample http range request session

【讨论】:

    猜你喜欢
    • 2014-10-01
    • 1970-01-01
    • 2012-12-20
    • 1970-01-01
    • 1970-01-01
    • 2011-03-19
    • 2013-07-29
    • 1970-01-01
    相关资源
    最近更新 更多