Вы должны использовать заголовок Range
в запросе.Но вы можете использовать его только в том случае, если сервер сообщит вам, что он принимает запрос диапазона с помощью Accept-Ranges
заголовка ответа.
Это пример сеанса.Предположим, мы заинтересованы в получении части этой картины .Сначала мы отправляем запрос HTTP HEAD
, чтобы определить: а) поддерживает ли сервер диапазоны байтов, б) длина содержимого:
> HEAD /2238/2758537173_670161cac7_b.jpg HTTP/1.1
> Host: farm3.static.flickr.com
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Thu, 08 Jul 2010 12:22:12 GMT
< Content-Type: image/jpeg
< Connection: keep-alive
< Server: Apache/2.0.52 (Red Hat)
< Expires: Mon, 28 Jul 2014 23:30:00 GMT
< Last-Modified: Wed, 13 Aug 2008 06:13:54 GMT
< Accept-Ranges: bytes
< Content-Length: 350015
Затем мы отправляем запрос GET
с *Заголовок 1012 *, запрашивающий первые 11 байтов изображения:
> GET /2238/2758537173_670161cac7_b.jpg HTTP/1.1
> Host: farm3.static.flickr.com
> Accept: */*
> Range: bytes=0-10
>
< HTTP/1.1 206 Partial Content
< Date: Thu, 08 Jul 2010 12:26:54 GMT
< Content-Type: image/jpeg
< Connection: keep-alive
< Server: Apache/2.0.52 (Red Hat)
< Expires: Mon, 28 Jul 2014 23:30:00 GMT
< Last-Modified: Wed, 13 Aug 2008 06:13:54 GMT
< Accept-Ranges: bytes
< Content-Range: bytes 0-10/350015
< Content-Length: 11
<
Это шестнадцатеричный дамп первых 11 байтов:
00000000 ff d8 ff e0 00 10 4a 46 49 46 00 |......JFIF.|
0000000b
Для получения дополнительной информации см. Спецификация заголовка диапазона в HTTP RFC 2616.