private static function range(ServerRequestInterface $request, ResponseInterface $response)
{
$response = $response->withHeader('Accept-Ranges', 'bytes');
$range = $request->getHeaderLine('Range');
if (empty($range) || !($range = self::parseRangeHeader($range))) {
return $response;
}
list($first, $last) = $range;
$size = $response->getBody()->getSize();
if ($last === null) {
$last = $size - 1;
}
return $response->withStatus(206)->withHeader('Content-Length', (string) ($last - $first + 1))->withHeader('Content-Range', sprintf('bytes %d-%d/%d', $first, $last, $size));
}