问题标签 [range-header]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
171 浏览

http - 在 GO 中重新组合大块的 zip 下载

我正在下载一个与 Accept-Ranges 和 Goroutines 并行的大型 .zip 文件。应用程序发送多个请求以使用其 Range 标头从 URL 下载 10MB 的 zip 文件块。

请求被分成不同的范围作为单独的 Goroutines,并将获得的数据写入临时文件。这些文件被命名为 1, 2, 3....

下载完所有文件后,我尝试将它们重新组合成一个 .zip 文件。但是,当文件放在一起时,我无法解压缩最终文件,因为它似乎已损坏。

我想知道我做错了什么,或者是否有更好的方法。提前致谢。

编辑:以下是记录到控制台的内容

0 投票
1 回答
298 浏览

magnolia - Magnolia:启用缓存过滤器时范围请求不提供内容,导致 Facebook 共享不起作用

当向 Magnolia 发送带有Range标头的 HTTP 请求时,我得到一个响应 Content-Length: 0

但是,当我禁用 Magnolia 缓存模块时,我得到了预期的响应:

/server/filters/cache->enabled: false

我遇到的问题是 Facebook 爬虫在尝试爬取我的网站时无法检测到任何打开的图元标记。我认为原因是上述向 Magnolia 发送范围请求的问题(Facebook 爬虫的作用)。

我的 Open Graph 标签设置正确(适用于opengraphcheck和 Twitter Card Validator)。

我正在使用 Magnolia 5.7.1。

0 投票
0 回答
55 浏览

c# - 在 ByteRangeStreamContent 中获取字节范围和直接从字节数组中剪切字节有什么区别

我想知道在获取字节范围内容ByteRangeStreamContent和直接从字节数组中获取字节范围是否有任何区别

所以基本上我想问一下以下两个代码是否有任何区别,就接收方将收到的结果而言response

另外,第二个版本正确吗?我可以使用它吗

0 投票
2 回答
209 浏览

asp.net-core - 从 .NET Core 将视频流式传输到 Safari

流媒体在除 Safari 之外的所有浏览器中都运行良好。据我所知,请求应该支持范围标头。

这是我正在使用的代码:

要求:

运行良好,仅将 100 字节保存到文件中。

还尝试了各种控制静音的 playinline preload="metadata"type="video/mp4"

0 投票
1 回答
38 浏览

javascript - 为什么 arrayBuffer.slice(0, 2).byteLength == 11?

我正在为 PWA 编写一个服务工作者,它处理缓存的音频文件。我正在按照本指南正确响应涉及范围标头的提取,这是 Safari 非常特别关注的。我有以下函数(从我的fetch事件处理程序调用),它非常接近指南中建议的代码:

根据评论,当此代码记录范围标头时bytes=0-1,通过构造的响应 arrayBufferarrayBuffer.slice(rangeStart, rangeEnd + 1)的 abyteLength为 11。为什么会这样?

我的总体反应是导致 Safari(在 iOS 上)在音频项目上设置无限的持续时间,导致无法搜索。这是我注意到的唯一异常部分,所以我唯一的线索可能会出错。

当然,如果有人对我的回答可能无法让 Safari 满意的原因有其他建议,我将非常感激听到它!

0 投票
1 回答
47 浏览

http - 如何充当中间人服务器在客户端和远程服务器之间添加 HTTP 标头?

我有一个服务器,它充当我无法控制的 HTTP 客户端和我无法控制的远程文件托管服务器之间的中间人。我想公开一个 URL,客户端可以通过该 URL 下载远程服务器上的文件块(由我的服务器提供的 HTTP 范围标头指定)。

这里有两个重要的限制:我想在不让响应流回我的服务器(响应直接到客户端)和编写自定义客户端的情况下促进此部分下载。我怎样才能做到这一点?

我尝试过的一个选项是让我的端点发送一个重定向响应,并在响应中设置范围标头,但不幸的是,这些标头没有转发到来自客户端的后续请求,因此整个文件都被下载了。考虑到限制,我可以采用其他任何技巧/网络魔法来实现这一目标吗?

0 投票
0 回答
92 浏览

google-chrome - 为什么谷歌浏览器会发出比文件大小更大范围的http下载请求以及如何处理?

更新:我们发现这个 1 MB 的范围只是由于我们自己的代码。进行检查后,问题得到解决。


我们已经实现了一个 Http 服务器,它可以为有/没有范围的文件提供服务。我们注意到谷歌浏览器以某种方式请求比实际大小更大的范围。例如,对于 < 1 MB 的文件,它将恰好请求 1 MB (1000000) 字节作为范围。对于超过 1 MB 的文件大小,它将恰好请求 2 MB (2000000) 等等。

最终,随后的请求将得到适当的满足并得到相应的满足。但是对于给定的文件,最初的请求是故意压倒性的。我们尝试提供文件大小而不是请求的更高范围,但这不起作用。

为什么 Chrome 首先要求更高的范围以及如何在服务器端处理它?

0 投票
0 回答
82 浏览

python - 浏览器未对大文件发起范围请求

我想通过 HTTPS 提供大文件(>1GB)。我正在尝试为此使用范围标头,以便当客户端(浏览器)请求字节范围时,它将由服务器提供服务。我还对范围设置了最大限制,即 1MB。

问题是浏览器(在 Chrome、Firefox 上测试)不启动范围请求。代码看起来像这样:

该函数file_download_in_ranges检查标题是否有Content-Rangeheader ,如果有,则返回指定范围内的文件中的数据块。我尝试对 HTML5 视频播放器使用相同的 API,效果很好。但是,当我使用相同的 API 创建锚链接时,浏览器不会启动 Range 请求周期。范围请求是否仅适用于浏览器内置的音频/视频播放器?

提前感谢您的建议!