问题标签 [chunked]
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.
.net - 如何从安全位置 .NET 创建大型可恢复下载
我需要先声明一下,我根本不是 .NET 编码器,但为了获得部分功能,我修改了一个 technet chunkedfilefetch.aspx 脚本,该脚本使用分块数据读取和写入流式传输方法进行文件传输,让我中途受益。
这适用于高达 2GB 的文件,并且现在可以正常运行。但只有一个问题它不允许恢复。
我采用了名为 fetch.aspx 的原始代码,并通过 URL 传递了一个 orderNUM。fetch.aspx&ordernum=xxxxxxx 然后它根据订单号从数据库中读取文件名/位置,并将其从不在 webroot 下的安全位置分块。
我需要一种方法来使这种恢复,由于互联网和大文件的性质,人们总是会断开连接并希望从中断的地方恢复。但是我读过的任何可恢复的文章,假设文件在 webroot 中.. 即。http://www.devx.com/dotnet/Article/22533/1954很棒的文章,效果很好,但我需要从安全的位置流式传输。
我根本不是 .NET 编码器,充其量我可以做一些冷融合,如果有人可以帮助我修改处理程序来做到这一点,我将非常感激。
要求:
- 我有一个运行良好的 fetch.aspx 脚本,它使用上面的代码片段作为流式下载的基础。
- 下载文件有 600MB 大,存储在 webroot 之外的安全位置。
- 用户单击 fetch.aspx 开始下载,因此如果下载失败,将再次单击它。如果 ext 是 .ASPX 并且发送的文件是 AVI,点击它会完全绕过映射到 .AVI ext 的 IHTTP 处理程序,所以这让我很困惑
- 据我了解,浏览器将读取并匹配 etag 值和文件修改日期以确定它们正在谈论同一个文件,然后在浏览器和 IIS 之间交换后续的接受范围。由于此对话框发生在 IIS 中,我们需要使用处理程序来拦截并做出相应的响应,但单击链接会将其发送到处理程序需要位于 AVI 字段上的 ASPX 文件。这也让我感到困惑。
如果有一种方法可以将包含 etag 的初始 HTTP 请求标头、accept-range 请求到普通的 .ASPX 文件中,我可以读取这些值,如果存在 accept-range 和 etag,以某种方式开始在该字节值处分块?但我找不到传输 http 请求标头的方法,因为它们似乎在 IIS 级别丢失了。
在 URL 字符串中传递的 OrderNum 是唯一的,可以用作 ETag
/li>由于大小,文件需要可恢复和分块。
- 文件扩展名为 .AVI,因此可以围绕它编写处理程序。
- IIS 6.0 网络服务器
任何帮助都将不胜感激,我一直在阅读和下载代码,但是给出的示例都不符合我的情况,原始文件是从 webroot 外部流式传输的。请帮我处理这些 httphandlers :)
php - 使用 Apache 和 PHP 对 gzip 进行分块的任何方式
我在一个网站上有一个 Web 应用程序,它需要一段时间(约 10 秒)才能完成页面底部附近的一部分 - 它已尽可能优化,缓存不是一种选择。
我们通过 .htaccess 指令在服务器上启用了压缩SetOutputFilter DEFLATE
,问题是这会导致整个页面在开始输出给用户之前一直保持到完成,这不是最佳的,因为用户在页面完成之前什么都看不到。
我也通过phpob_start("ob_gzhandler");
方法尝试过。
目前我的<FilesMatch >
.htaccess 中有一个限制这个特定脚本被压缩。
基本上我的问题是这个 - 有没有办法说块 gzip 或放气,以便用户得到它的碎片,所以他们可以看到页面已经开始加载?
http - 分块编码和内容长度标头
是否可以设置内容长度标头并使用分块传输编码?这样做是否解决了使用分块时不知道客户端响应长度的问题?
我正在考虑的场景是当您有一个大文件要传输并且确定其大小没有问题,但它太大而无法完全缓冲。(如果你不使用分块,那么整个响应必须首先被缓冲?对吗??)
谢谢。
c# - HTTP 块传输编码和 MFC
我有一个用 MFC 编写的专有客户端-服务器应用程序。除了我的客户端将与服务器通信之外,没有其他客户端。出于安全原因,我们使用的是 HTTP。
在 know 之前,我们使用 content-length 来描述响应正文结束的客户端。现在我们遇到的情况是预先不知道长度并且我们无法缓冲数据。我在 rfc 中读到有分块传输编码。问题是我不想实现 rfc 中定义的格式(http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.6第 3.6.1 节)。
问题是,如果我使用自己的块格式,然后 MFC 类尝试解析它,它将出现错误,因为这不是 RFC 中定义的预期格式。
是否可以将“分块传输编码”放在响应标头中,然后使用我自己的块格式?或者换句话说,当 MFC 类在响应标头中看到“分块传输编码”时,是否会尝试根据 rfc 中的分块格式定义来解析正文?
android - 如何获取 https、分块推送 Servlet 的 InputStream?
我花了三天时间了解如何连接到 https 分块推送 servlet 并获取输入流。当
我尝试获取这个 servlet 的 InputStream 时,这条线阻塞了HttpsURLConnection
!HttpClient
没有错误,没有例外,什么都没有。调试器只停在这一行并等待。
我知道 servlet 的 Header 中没有,我知道这就是阻塞方法的Content-Length
原因。getInputStream
URLConnection
但现在我没有其他想法了。有没有人可以帮助我InputStream
从 servlet 中得到这个?所有连接都很好,HttpsURLConnection
只有HTTPClient
InputStream 失败,我不知道为什么。
apache-flex - 读取具有传输编码分块的 Flex/Flash URL
我从 Flex 读取具有 Transfer-Encoding: chunked 的 url 时遇到问题,因为 Flex 等待服务器发送终止信号,该信号在分块传输中未发送...
http - 如果未发送 HTTP 标头,如何从分块编码中确定内容数据长度
如果未发送标头而是接收Transfer-Encoding: chunked
标头,如何确定内容数据长度?
android - 是否有任何 Android 开发人员成功地从 Web 服务接收到分块传输协议?
我一直在努力使用几个类实现来检索分块数据,但没有成功。以下是有问题的简化代码模块。在网上冲浪后,过去似乎出现过问题(2009、2010;1.1、1.5 版),但现在应该已经解决了。我还没有看到这个协议在 Android 平台上取得了任何明确的成功。
帮助!
如果我输入了无效的令牌,我能够看到一些响应——Web 服务将响应应用程序错误消息。但是,有效的 url 和令牌将简单地响应分块协议的检测(isChunked() 返回 true),但没有任何内容被读取,也没有任何超时等。
从命令行使用 CURL 发出的完全相同的 URL 按预期工作并显示连续内容(从 Web 服务发布的数据)。
是否有任何网络服务方面的黑客攻击,例如,添加更多的行尾,以强制接收流?
curl - 为什么响应中没有“Set-Cookie”标头?
我发现有时浏览器无法从我的网站获取 cookie,所以我使用curl
检查标题,信息是:
但是当我使用浏览器IE6
访问Firefox
时,标题是:
您可以看到没有Set-Cookie
标题,这会产生问题。我的服务器是Jetty 6.1.26
. 为什么他们是不同的反应?哪里错了?以及如何解决?
java - Java:如何正确下载分块内容?
我必须下载 HTTP 响应为“Transfer-Encoding: Chunked”的文件,因为我无法通过 «getContentLength» 为 DataInputStream 分配新的字节缓冲区。你能建议我如何正确地做到这一点吗?
代码示例非常简单:
} catch(IOException ex) { Logger.getLogger(WhatCDWork.class.getName()).log(Level.SEVERE, null, ex); }