Какова связь между длиной содержимого и диапазонами байтов в HTTP / 1.1? - PullRequest
13 голосов
/ 19 февраля 2011

Я не понимаю идею длины содержимого и диапазонов байтов, как указано в HTTP 1.1. Есть ли какая-то связь между ними?Если клиент запрашивает в терминах диапазонов байтов, скажем, 0-100 из 200, будет ли первый ответ содержать «длину содержимого», равную 100 байтам, за которыми следуют 100 фактических данных?

Спасибо

1 Ответ

32 голосов
/ 19 февраля 2011

Поле заголовка объекта Content-Length указывает размер тела объекта […], отправленного получателю […]

В сообщении, не состоящем из нескольких частей, тело объекта - это тело сообщения HTTP, поскольку оно содержит только один объект. Таким образом, значение Content-Length указывает длину отправляемого тела сообщения, а не размер всего ресурса.

Таким образом, для частичного ответа содержимого на запрос диапазона 0-100 байтов (включительно первый и последний байт) Content-Length ответа будет 0 ≤ размер ≤ 101.

В случае ресурса длиной 12345 байт ответ может выглядеть следующим образом:

HTTP/1.1 206 Partial Content
Content-Range: bytes 0-100/12345
Content-Length: 101

… 101 bytes of content …
...