Range 如何识别字节范围请求中最后一组字节的范围(内容长度)?

Range 如何识别字节范围请求中最后一组字节的范围(内容长度)?,range,byte,pdfjs,Range,Byte,Pdfjs,我使用mozilla的pdf.js库在我的应用程序中呈现pdf。它使用相同的字节范围请求。我知道第一组和最后一组字节的请求是出于元数据目的首先发出的。但最后一组字节的范围与pdf不同。如何识别和设置最后一组字节的范围?同样,在200 OK状态下获得第一组字节。我想知道为什么200而不是206部分内容的状态 我知道第一组和最后一组字节的请求是出于元数据目的首先发出的 部分错误:即使它到达外部参照/元数据,也会加载PDF的最后一块。文件在逻辑上分为65536字节的块(请参阅) 但最后一组字节的范围与

我使用mozilla的pdf.js库在我的应用程序中呈现pdf。它使用相同的字节范围请求。我知道第一组和最后一组字节的请求是出于元数据目的首先发出的。但最后一组字节的范围与pdf不同。如何识别和设置最后一组字节的范围?同样,在200 OK状态下获得第一组字节。我想知道为什么200而不是206部分内容的状态

我知道第一组和最后一组字节的请求是出于元数据目的首先发出的

部分错误:即使它到达外部参照/元数据,也会加载PDF的最后一块。文件在逻辑上分为65536字节的块(请参阅)

但最后一组字节的范围与pdf不同

js只加载整个块(为了提高效率),可能除了不完整的最后一块。因此,对于不同的PDF大小,最后一个块大小的范围可能不同

同样,在200 OK状态下获得第一组字节。我想知道为什么200而不是206部分内容的状态


取决于您正在谈论的浏览器。对于支持流媒体的浏览器(目前只有Firefox),PDF.js除了范围请求之外,还继续获取数据。一些浏览器(Safari和old Chrome)存在缓存缺陷:它报告缓存文件的缓存量为200,甚至范围请求也是如此。

第一个区块的请求优先,最后一个区块的请求次之。。为什么要按这个顺序?元数据位于第一块/最后一块的什么位置?此外,在chrome(59版)和firefox中,单独使用0-65535字节呈现200 OK状态。。其他我得到206部分内容状态。为什么会这样@asyn5First request确定HTTP服务器是否支持范围请求,它是200,但如果文件足够大,可以通过范围请求有效处理,则PDF.js会中断传输。元数据指针/偏移量位于文件的末尾,“元数据”内容可以位于文件的任何位置。此外,浏览器的网络工具可能会谎报状态,请使用网络嗅探器。