Учитывая много (на практике, я полагаю) секций заголовков HTTP / 1.1, вы можете получить предположение о том, какова длина тела сущности. Если у вас есть такое ожидание, вы можете решить, получили ли вы все данные объекта. См. RFC 2616 раздел 4.4 для полной информации, но по существу:
- иногда
content-length
точно отражает длину тела сущности
- иногда не может быть тела объекта, в зависимости от кода ответа или ответа на запрос
HEAD
- иногда запрос передается в закодированном виде; и в данных HTTP есть маркер, который говорит: «Я закончил сейчас» (
Transfer-Encoding: chunked
)
- и иногда сообщение официально делается, когда соединение закрывается (в этом случае вы не можете различить получение целиком и преждевременное отключение)
Во всех случаях, кроме последнего, вы можете сказать, есть ли у вас все это или нет. Я не знаю, дает ли какой-либо конкретный инструмент (wget или существующая библиотека python) легко интерпретируемый сигнал о том, что ваш ответ был или не был усечен.