Прежде чем анализировать различные фрагменты кода описания класса Pownioad, хорошо бы понять его принцип действия. Для загрузки файла из Интернета его URL-адрес передается как параметр в функцию downioad(). .Если на диске нет файла с тем же именем, то он загружается полностью. Если же частично загруженный файл с таким же именем есть на диске, то Сгружается только остаток файла. Именно способность загружать остаток Файла делает возможным возобновление загрузки из Интернета, которая была прервана. Для выполнения частичной загрузки класс Download использует заголовок Range (заголовок интервала) — средство протокола HTTP версий 1.1 и более поздних, позволяющее загружать область или интервал данных. Следовательно, загрузчик работает только с URL-адресами, которые поддерживают протокол HTTP версий 1.1 и новее. Именно заголовок Range позволяет возобновить прерванную загрузку файла из Интернета с той точки, в которой она прекратилась. Поскольку требуется протокол HTTP версии 1.1, загруз-чик поддерживает только НТТР-загрузки. Если речь идет о запросе HTTP, заголовком (header) называют информацию, его сопровождающую. Заголовок Range — это строка следующего вида: Range:bytes=start-end Здесь start задает начало интервала, a end — его конец. Если элемент end отсутствует, интервал начинается от точки start и заканчивается в конце файла. В классе Download со спецификатором доступа public определена одна функция — downioado, которая вызывается для загрузки файла из Интернета. Таким образом, она служит точкой входа для загрузки. Кроме того, в классе Download описаны четыре вспомогательные функции, перечисленные в табл. 5.2. Эти вспомогательные функции описаны со спецификатором доступа private В теле класса Download.
|