Многопоточное скачивание по HTTP
От: __al  
Дата: 10.05.08 18:52
Оценка:
Добрый вечер!

Сталкнулся с такой проблемой при реализации многопоточного скачивания файла по HTTP. Создаю несколько потоков. Каждый будет скачивать свою часть файла. В каждом потокое создаю соединение с сервером и отправляю запрос. Для каждого запроса устанавливаю загодовок Range: bytes=0-1000, Range: bytes=1001-2000 ... Далее каждый поток получает данный и записывает их в файл на соответствующее место.

При загрузки файлов с локального сервера всё работает нормально. Но как только я пытаюсь скачать например http://yandex.ru/index.html происходит херня. В ответ на запрос с заголовком Range: bytes=1001-2000 приходи самое начало файла, то есть тоже, что и на запрос с Range: bytes=0-1000.

Может просто Яндекс специально не поддерживает заголовок Range? Или я что-то не так делаю?
Re: Многопоточное скачивание по HTTP
От: Cyberax Марс  
Дата: 10.05.08 18:55
Оценка:
Здравствуйте, __al, Вы писали:

__>При загрузки файлов с локального сервера всё работает нормально. Но как только я пытаюсь скачать например http://yandex.ru/index.html происходит херня. В ответ на запрос с заголовком Range: bytes=1001-2000 приходи самое начало файла, то есть тоже, что и на запрос с Range: bytes=0-1000.

__>Может просто Яндекс специально не поддерживает заголовок Range? Или я что-то не так делаю?
Естественно, не поддерживает — в заголовках ответов Yandex'а нет поля "Accept-Ranges: bytes". Было бы вообще удивительно, если бы он поддерживал.
Sapienti sat!
Re[2]: Многопоточное скачивание по HTTP
От: adontz Грузия http://adontz.wordpress.com/
Дата: 10.05.08 19:26
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Естественно, не поддерживает — в заголовках ответов Yandex'а нет поля "Accept-Ranges: bytes". Было бы вообще удивительно, если бы он поддерживал.


Кроме того, сервер может вернуть не совсем тот промежуток файла, который у него запросили. Так что надо обрабатывать заголовки ответа.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[3]: Многопоточное скачивание по HTTP
От: __al  
Дата: 10.05.08 23:35
Оценка:
Здравствуйте, adontz, Вы писали:

A>Кроме того, сервер может вернуть не совсем тот промежуток файла, который у него запросили. Так что надо обрабатывать заголовки ответа.


А можно поподробней? И какие заголовки надо обрабатывать?
Re[4]: Многопоточное скачивание по HTTP
От: wellwell Австралия https://www.softperfect.com
Дата: 11.05.08 02:49
Оценка:
"__al" <74778@users.rsdn.ru> wrote in message news:2945687@news.rsdn.ru...
> A>Кроме того, сервер может вернуть не совсем тот промежуток файла, который у него запросили. Так что надо обрабатывать заголовки ответа.
> А можно поподробней? И какие заголовки надо обрабатывать?

Смотри ответ сервера. 200 OK — хрен тебе, получай файл сначала. 206 Partial content — повезло, это часть файла.
Posted via RSDN NNTP Server 2.1 beta
Re[5]: Многопоточное скачивание по HTTP
От: wellwell Австралия https://www.softperfect.com
Дата: 11.05.08 03:17
Оценка:
"wellwell" <41011@users.rsdn.ru> wrote in message news:2945715@news.rsdn.ru...
>> А можно поподробней? И какие заголовки надо обрабатывать?
> Смотри ответ сервера. 200 OK — хрен тебе, получай файл сначала. 206 Partial content — повезло, это часть файла.

Ну и разумеется Content-Range заголовок ответа надо проверять.
Posted via RSDN NNTP Server 2.1 beta
Re[6]: Многопоточное скачивание по HTTP
От: __al  
Дата: 11.05.08 14:56
Оценка:
Здравствуйте, wellwell, Вы писали:

W>"wellwell" <41011@users.rsdn.ru> wrote in message news:2945715@news.rsdn.ru...

>>> А можно поподробней? И какие заголовки надо обрабатывать?
>> Смотри ответ сервера. 200 OK — хрен тебе, получай файл сначала. 206 Partial content — повезло, это часть файла.

W>Ну и разумеется Content-Range заголовок ответа надо проверять.


Cпасибо! Сейчас посмотрю чё там как.
Re: Многопоточное скачивание по HTTP
От: Maxim S. Shatskih Россия  
Дата: 12.05.08 19:48
Оценка:
__>Сталкнулся с такой проблемой при реализации многопоточного скачивания файла по HTTP.

Оно не нужно.

Не дает выигрыша ни в каком случае, кроме случая, когда на сервере трафик-шейпер стоит.
Занимайтесь LoveCraftом, а не WarCraftом!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.