php - Apache 和 Content-Range
问题描述
我正在尝试在 PHP 生成的文件中实现对 Content-Range 的支持。当浏览器发送 Range 请求时,我的脚本会给出正确的字节并且运行良好。但是在测试从 Apache 服务器下载 PDF 时 Content-Range 的外观时,我意识到从 Web 浏览器到我的服务器的第一个请求不包含 Range 标头,但不知何故,服务器仍然没有返回完整的文件,只有 32 kB。
在此屏幕截图中,您可以看到 Firefox 向 Apache 发送了 5 个请求 my_pdf.pdf,而 Apache 每次响应 32-192 kB。整个 PDF 为 28 MB。请求 2-5 确实包含范围请求。但第一个请求 - 突出显示没有。您可以在右侧看到 Content-Length 为 28 MB,但 Apache 仅返回 32 kB。
所以我的问题是——Apache 怎么知道只返回 32 kB 而不是整个 28 MB PDF 文件?
解决方案
所以我的问题是——Apache 怎么知道只返回 32 kB 而不是整个 28 MB PDF 文件?
它没有。如果您查看响应中的 Content-Length 标头,它会显示 2930 万字节的完整文件大小。
客户端可能在未读取整个响应的情况下关闭了连接。
推荐阅读
- python - 比较包含 unicode 和字节字符串的字典
- autohotkey - 区分物理按键和重复按键
- ruby-on-rails - 使用 Rails 在 VS 代码中设置断点
- javascript - 嵌套异步函数
- python - 使用 TensorFlow 的对象检测 API 评估测试数据时遇到问题
- javascript - 在 Javascript 中传入函数的引用数据类型
- python - pandas_datareader 无法在 x 轴上打印日期
- sql-server - SSMS 服务器名称需要 FQDN,并且不能仅识别主机名
- html - React Meteor 使用 JS 渲染 HTML
- csv - 如何在 Golang 中解码 UTF-16BE CSV 文件