+  HandyCache форум
|-+  Главная категория» Новые предложения» Докачка файлов и загрузка по частям
Имя пользователя:
Пароль:
Страниц: 1 [2] 3 4 ... 7   Вниз
  Отправить эту тему    Печать  
Автор Тема: Докачка файлов и загрузка по частям  (Прочитано 149015 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Сергей
Beta tester
*****

Репутация: +9/-2
Offline Offline

Сообщений: 621



« Ответ #20 : 16 января 2007, 15:02:43 »

Цитировать
Но будет работать и для больших файлов если кто-то будет их качать через HC (зачем?)
Иногда нет другого способа выхода в сеть как через http-прокси.
Сообщить модератору   Записан
Дем
Постоялец
***

Репутация: +6/-3
Offline Offline

Сообщений: 167



« Ответ #21 : 16 января 2007, 22:24:39 »

Цитировать
Ты не совсем верно понял проблему: в основном речь не о загрузке больших файлов, а обычных страниц и их элементов. Но будет работать и для больших файлов если кто-то будет их качать через HC (зачем?) - т.е механизм одинаковый.
Да, понятие "большой" - оно относительно...
Вот например типичная страничка на фишках - полсотни картинок в среднем по сто кил каждая. Это как - много или мало?
Сообщить модератору   Записан
Дем
Постоялец
***

Репутация: +6/-3
Offline Offline

Сообщений: 167



« Ответ #22 : 26 января 2007, 23:11:34 »

Тут пришла мысль, что надо бороться не столько с последствиями, сколько с причиной появления недокачанных файлов.
А она - в логике работы НС.  А именно - в том, что оно пытается заглотить больше, чем может проглотить.
Реально пользовательский канал пропускает одновременно 1-2-3 потока закачки, а НС пытается закачать сразу 9.
Естественно, остальные стоят. А по окончании закачки этих 1-2 открываются новые, и качаются именно они, а старые стоят. И наконец рвутся по таймауту.

Может добавить в логику работы "не создавать новую закачку, если существующие занимают более 3/4 канала"?

« Последнее редактирование: 26 января 2007, 23:22:44 от Дем » Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #23 : 27 января 2007, 00:28:08 »

Мне так кажется, закачки не НС содает (он всего лишь посредник), а браузер. Многие браузеры имеют возможность настройки макс. количества одновременных соединений, почему бы ими не воспользоваться?
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #24 : 27 января 2007, 00:44:09 »

А она - в логике работы НС.  А именно - в том, что оно пытается заглотить больше, чем может проглотить.
Сколько браузер затребовал одновременно - столько и "заглатывается".

Цитировать
А по окончании закачки этих 1-2 открываются новые, и качаются именно они, а старые стоят.
Качаются не именно новые, а те, на которые поступают данные от удаленного сервера. Т.е. что прислали - то и качается.

Цитировать
Может добавить в логику работы "не создавать новую закачку, если существующие занимают более 3/4 канала"?
Если запрос ушел, а данные не поступают, или перестали поступать - какую часть канала занимает такая закачка?
Сообщить модератору   Записан
Дем
Постоялец
***

Репутация: +6/-3
Offline Offline

Сообщений: 167



« Ответ #25 : 27 января 2007, 04:55:02 »

Цитировать
Сколько браузер затребовал одновременно - столько и "заглатывается".
Но это не означает, что ему нужно столько давать...
Тем более что без прокси он не 9 устанавливает, а в разы больше... Но он - при обрыве докачивает!

Цитировать
Качаются не именно новые, а те, на которые поступают данные от удаленного сервера. Т.е. что прислали - то и качается.
А присылается то, что запрошено. Не запросили бы - прислали данные на ранее открытые. Но им даже шанса не дают...
Цитировать
Если запрос ушел, а данные не поступают, или перестали поступать - какую часть канала занимает такая закачка?
Так перестают они поступать из-за наличия очередной закачки...

В общем, ситуация в том, что НС не только не выполняет свою задачу - кешировать содержимое на диск (ибо докачанные броузером файлы не сохраняются) - но зачастую и прямо мешает, не давая докачать, отвечая "файл не изменился"
Так что, если нельзя быть уверенным, что интересующий меня контент остался в кеше - встаёт вопрос о целесообразности пользования ей...
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #26 : 27 января 2007, 05:20:58 »

Но это не означает, что ему нужно столько давать...
По какому критерию определять сколько давать?

Цитировать
Тем более что без прокси он не 9 устанавливает, а в разы больше...
Именно. И HC здесь просто посредник - без него все происходит абсолютно так же.

Цитировать
Но он <браузер>- при обрыве докачивает!
Да неужто? Пример можно кроме "сохранить как"?

Цитировать
Не запросили бы - прислали данные на ранее открытые. Но им даже шанса не дают...
Так перестают они поступать из-за наличия очередной закачки...
1. Претензии к браузеру.
2. По какому критерию ты предлагаешь определять кому давать шанс? Как ты себе представляешь "раздачу шансов"?
В очереди стоит закачка - запрос отправлен, а данных нет. Что предлагаешь делать: дать ей "шанс" - ждать пока пойдут данные (а они вообще могут не придти), или давать шанс следующим в очереди?

Цитировать
В общем, ситуация в том, что НС не только не выполняет свою задачу - кешировать содержимое на диск (ибо докачанные броузером файлы не сохраняются)
Что означает "докачанные браузером файлы"?

Цитировать
но зачастую и прямо мешает, не давая докачать, отвечая "файл не изменился"
Пример?
Сообщить модератору   Записан
Дем
Постоялец
***

Репутация: +6/-3
Offline Offline

Сообщений: 167



« Ответ #27 : 27 января 2007, 14:37:19 »

Цитировать
По какому критерию определять сколько давать?
как пользователь скажет. Цифирька в настройках. Мне 2 достаточно.
Цитировать
Именно. И HC здесь просто посредник - без него все происходит абсолютно так же
Я же писал выше - не так. Браузер устанавливает соединения по количеству картинок и т.п. на странице. Другое дело - сколько из них сервер ассептит.

Цитировать
Да неужто? Пример можно кроме "сохранить как"?
Строчка из лога:
26.01.2007/21:58:34 local httр://k.foto.radikal.ru/0611/f35b9126a086.jpg 77348 12676 16% 2 "200 OK" П.2, З.4
26.01.2007/22:06:27 local httр://k.foto.radikal.ru/0611/f35b9126a086.jpg 64672 27023 41% 2 "206 Partial Content" П.2
26.01.2007/22:07:50 local httр://k.foto.radikal.ru/0611/f35b9126a086.jpg 40529 25583 63% 2 "206 Partial Content"
26.01.2007/22:09:23 local httр://k.foto.radikal.ru/0611/f35b9126a086.jpg 14946 14946 100% 2 "206 Partial Content"

Кто это докачал, по-твоему? И попал ли этот файл в кеш?
Цитировать
1. Претензии к браузеру.
2. По какому критерию ты предлагаешь определять кому давать шанс? Как ты себе представляешь "раздачу шансов"?
В очереди стоит закачка - запрос отправлен, а данных нет. Что предлагаешь делать: дать ей "шанс" - ждать пока пойдут данные (а они вообще могут не придти), или давать шанс следующим в очереди?
1. Б-Г, к сожалению, недоступен Улыбка
2. Невнимательно читаешь Улыбка Написал же - если уже качается со скоростью >3/4 пропускной (собственно, граничную цифирь в настройках указать, а не заниматься шаманством по определению этой скорости)
Цитировать
Что означает "докачанные браузером файлы"?
См выше.
Цитировать
Пример?
httр://fchan.hentaiplanet.net/src/s_1168052051176_pinned.jpg 74042 4101 5% 2 "200 OK" З.4
httр://fchan.hentaiplanet.net/src/s_1168052051176_pinned.jpg    2 "304 Not Modified (HC)" Н.4
« Последнее редактирование: 27 января 2007, 14:42:30 от Дем » Сообщить модератору   Записан
NothingAnother
Beta tester
*****

Репутация: +7/-2
Offline Offline

Сообщений: 434

Spoiler


« Ответ #28 : 27 января 2007, 15:13:53 »

Я же писал выше - не так. Браузер устанавливает соединения по количеству картинок и т.п. на странице
Да и так - тоже не совсем Подмигивающий У большинства современных браузеров в настройках есть "кол-во соединений/на сервер", и уже исходя из этого лимита он разбрасывется запросами (ессно, если контент HTML его просит об этом)
Сообщить модератору   Записан

Мы тоже не всего читали Шнитке!..
© В. Вишневский
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #29 : 27 января 2007, 17:19:14 »

> По какому критерию определять сколько давать?
как пользователь скажет. Цифирька в настройках. Мне 2 достаточно.

Ну это ты сгоряча. Подмигивающий

Цитировать
Браузер устанавливает соединения по количеству картинок и т.п. на странице. Другое дело - сколько из них сервер ассептит.

Так какие претензии к НС? Что он не так делает?

Цитировать
Кто это докачал, по-твоему? И попал ли этот файл в кеш?
Кто докачал - хотел бы от тебя узнать ответ. Как-кто-откуда - я бы хотел проверить вывод. Попал ли в кэш? Насколько я понимаю нет.

Цитировать
Невнимательно читаешь Улыбка Написал же - если уже качается со скоростью >3/4 пропускной (собственно, граничную цифирь в настройках указать, а не заниматься шаманством по определению этой скорости)

Взаимный упрек в невнимательности/недопонимании. Улыбка Давай пофантазируем: браузер запросил N URL. НС в соответствии с твоими пожеланиями сделал запрос только к 2-м. Какое-то из соединений "заглохло": данные не начали поступать или их передача с какого-то момента прекратилась. Вопрос, что делать: ждать (может быть до истечения таймаута по всем N запросам?) а не пойдут ли опять данные, или сделать запрос к следующему URL из N-2 ожидающих в очереди? Или сделать запрос по всем URL, а там уж система сама поделит кому-чего-сколько?

Цитировать
httр://fchan.hentaiplanet.net/src/s_1168052051176_pinned.jpg 74042 4101 5% 2 "200 OK" З.4
httр://fchan.hentaiplanet.net/src/s_1168052051176_pinned.jpg    2 "304 Not Modified (HC)" Н.4

А почему браузер прислал такой запрос? Причины? Подмигивающий
Сообщить модератору   Записан
Дем
Постоялец
***

Репутация: +6/-3
Offline Offline

Сообщений: 167



« Ответ #30 : 27 января 2007, 21:10:49 »

Цитировать
Так какие претензии к НС? Что он не так делает?
Слишком много соединений открывает...
Цитировать
Кто докачал - хотел бы от тебя узнать ответ.
Страничку я браузером открывал, так что кроме него больше некому Улыбка
Цитировать
Какое-то из соединений "заглохло": данные не начали поступать или их передача с какого-то момента прекратилась. Вопрос, что делать:
1) ждать (может быть до истечения таймаута по всем N запросам?) а не пойдут ли опять данные, или сделать запрос к следующему URL из N-2 ожидающих в очереди?
2) Или сделать запрос по всем URL, а там уж система сама поделит кому-чего-сколько?
1) Вопрос интересный
2) А она не умеет! Ей проще перезапросить, чем регулировать... В чём и проблема...
Цитировать
А почему браузер прислал такой запрос? Причины?
Какой "такой"? Улыбка Обычный он прислал... Других для данного случая у него не предусмотрено Улыбка
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #31 : 27 января 2007, 23:09:19 »

Слишком много соединений открывает...
Не больше чем у него запрошено. НС - посредник! О чем уже несколько раз было сказано, кстати. Интереснее бы звучал вопрос "несколько приложений одновременно направляют свои запросы через НС - каково распределение приоритетов между ними?"

Цитировать
Страничку я браузером открывал, так что кроме него больше некому Улыбка
Я говорил, что хочу проверить вывод, хочу провести эксперимент и сам получить такой же результат. Для этого мне нужно знать какой браузер и какой URL. Мне любопытно - поспособствуй пожалуйста в удовлетворении этого моего любопытства. О результате, разумеется, здесь же и сообщу.

Цитировать
Вопрос интересный
А ответ будет?

Цитировать
А она не умеет! Ей проще перезапросить, чем регулировать... В чём и проблема...
Можно подробнее о предпосылках, на которых постоен такой вывод?

Цитировать
Какой "такой"? Улыбка Обычный он прислал... Других для данного случая у него не предусмотрено Улыбка
Как должно быть:
Цитировать
304 Not Modified (Не модифицировано)
Если клиент выполнил условный запрос GET и получил доступ, а документ не был модифицирован, сервер должен реагировать этим статусным кодом. Отклик не должен содержать тела сообщения.
Если отклик 304 указывает на то, что объект не кэширован, тогда браузер должен игнорировать отклик и повторить запрос уже в безусловном режиме.
Дык вот и вопрос: а кто собственно не так что-то делает?
Сообщить модератору   Записан
Дем
Постоялец
***

Репутация: +6/-3
Offline Offline

Сообщений: 167



« Ответ #32 : 28 января 2007, 02:20:12 »

Цитировать
Я говорил, что хочу проверить вывод, хочу провести эксперимент и сам получить такой же результат. Для этого мне нужно знать какой браузер и какой URL.
Браузер - Махтрон на ИЕ7. А вот как ты собираешься получить тот же результат при других исходных - не знаю...
Цитировать
Интереснее бы звучал вопрос "несколько приложений одновременно направляют свои запросы через НС - каково распределение приоритетов между ними?"
Многооконный браузер - это и есть "несколько приложений", ибо одно окно не ведает, что другие творят.
А вот почему в части случаев он пытается докачать, а в части нет (хотя сервер докачку поддеживает) - не знаю. Скорей всего причина в различном наполнении заголовков запроса.
И мне тоже интересно, почему, когда браузер напрямую запрашивает - картинка закачивается заново, а когда через НС - не закачивается. Может потому, что  в If-Modified-Since не только дата, но и длина файла указывается - а сервер правильную знает. В отличие от НС, который её помнить не считает нужным.
Цитировать
Дык вот и вопрос: а кто собственно не так что-то делает?
Какая разница - кто? Важно, что кто-то - неправильно. Что нуждается в лечении.
Причём - на браузер или сервер у меня средств воздействия нет. А вот прослойку между ним и сервером я выбрать с нужными функциями могу.
И если НС пригодна лишь для диалапщиков - ну что ж, придётся искать другую...
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #33 : 28 января 2007, 03:04:19 »

Браузер - Махтрон на ИЕ7. А вот как ты собираешься получить тот же результат при других исходных - не знаю...
Макстон то у меня есть, а вот IE7 нет. Грустный

Цитировать
Многооконный браузер - это и есть "несколько приложений", ибо одно окно не ведает, что другие творят.
Что за новости? Хотя... может быть в IE так и есть - не знаю. У меня Опера - в ней окна прекрасно "ведают, что творят другие".

Цитировать
И мне тоже интересно, почему, когда браузер напрямую запрашивает - картинка закачивается заново, а когда через НС - не закачивается. Может потому, что  в If-Modified-Since не только дата, но и длина файла указывается - а сервер правильную знает. В отличие от НС, который её помнить не считает нужным.
1. If-Modified-Since - это только дата.
2. Есть две большие разницы: одно дело, ты сказал браузеру загрузить картинку и он берет ее из собственного кэша (в том виде как она там есть - может и недокачанную) или из инета с уловным запросом (If-Modified-Since), и другое дело, когда ты требуешь от браузера обновить картинку - браузер посылает серверу безусловный запрос "дай".

Дык вот в случае если между браузером и инетом HC - то, на условный запрос HC ответит 304 (если файл закачивался через HC и файл одинаков у браузера и НС), но и если браузер отправляет _безусловный_ запрос HC отдаст ему файл из своего кэша - этим и достигается экономия: то, за чем тупой браузер вечно лезет в сеть ему отдается из кэша.
Вот и получается, что и на условный и на безусловный запросы браузеру отдается файл из кэша - при условии конечно, что заданные правила в HC для данного URL не предписывают НС иного поведения.
Здесь можно задаться вопросом, а зачем НС хранит недокаченный файл в кэше? Ответ: и недокаченный файл может быть востребован с пользой - например, в автономном режиме.

Цитировать
Какая разница - кто? Важно, что кто-то - неправильно. Что нуждается в лечении.
Неважно кого лечить - лишь бы лечить? Подмигивающий
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #34 : 28 января 2007, 04:11:34 »

Дем
Цитировать
И если НС пригодна лишь для диалапщиков - ну что ж, придётся искать другую...
Вольному воля. Никто тебя не заставляет пользоваться НС, не нравится - не надо. Желаю успехов.
Сообщить модератору   Записан
Сергей
Beta tester
*****

Репутация: +9/-2
Offline Offline

Сообщений: 621



« Ответ #35 : 28 января 2007, 12:27:33 »

Цитировать
httр://fchan.hentaiplanet.net/src/s_1168052051176_pinned.jpg 74042 4101 5% 2 "200 OK" З.4
httр://fchan.hentaiplanet.net/src/s_1168052051176_pinned.jpg    2 "304 Not Modified (HC)" Н.4

А почему браузер прислал такой запрос? Причины? Подмигивающий

Может браузер не виноват и HC сам посылает If-Modified-Since когда не следует?
Сообщить модератору   Записан
Дем
Постоялец
***

Репутация: +6/-3
Offline Offline

Сообщений: 167



« Ответ #36 : 28 января 2007, 19:06:50 »

Цитата: Rick
1. If-Modified-Since - это только дата.
Увы... Из лога:
GET http://diary.ru/block_layout.css HTTP/1.1
Accept: */*
Accept-Language: ru
UA-CPU: x86
Accept-Encoding: gzip, deflate
If-Modified-Since: Tue, 23 Jan 2007 22:39:06 GMT; length=8187

Цитата: Rick
2. Есть две большие разницы: одно дело, ты сказал браузеру загрузить картинку и он берет ее из собственного кэша (в том виде как она там есть - может и недокачанную) или из инета с уловным запросом (If-Modified-Since), и другое дело, когда ты требуешь от браузера обновить картинку - браузер посылает серверу безусловный запрос "дай".
при нажатии F5 - запрос на докачку. С непопаданием в НС. А учитывая урезанный размер кеша браузера - через какое-то время этого файа у меня на компе вообще нет.
Цитата: mai62
Вольному воля. Никто тебя не заставляет пользоваться НС, не нравится - не надо. Желаю успехов.
Не обижайся! Программа у тебя отличная, и если она кому не подошла - не твоя вина.
И я хочу только помочь сделать её лучше, даже если сам пользоваться не буду.
Сообщить модератору   Записан
Дем
Постоялец
***

Репутация: +6/-3
Offline Offline

Сообщений: 167



« Ответ #37 : 31 января 2007, 01:16:46 »

Во, поймал:

GET /images/sex_pribor.jpg HTTP/1.1
Accept: */*
Accept-Language: ru
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; Maxthon; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
Host: yanazinovieva.narod.ru
Proxy-Connection: Keep-Alive
Pragma: no-cache
Cookie: nuid=2066190201169682986


HTTP/1.0 200 OK
Date: Tue, 30 Jan 2007 22:05:41 GMT
Server: ZX_Spectrum/1997 (Sinclair_BASIC)
Last-Modified: Fri, 08 Dec 2006 23:21:20 GMT
ETag: "da914-fccd-4579f370"
Accept-Ranges: bytes
Content-Length: 64717
Connection: close
Content-Type: image/jpeg




GET http://yanazinovieva.narod.ru/images/sex_pribor.jpg HTTP/1.1
Accept: */*
Accept-Language: ru
UA-CPU: x86
Accept-Encoding: gzip, deflate
If-Modified-Since: Fri, 08 Dec 2006 23:21:20 GMT; length=58956
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; Maxthon; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
Proxy-Connection: Keep-Alive
Host: yanazinovieva.narod.ru
Cookie: nuid=2066190201169682986


HTTP/1.0 304 Not Modified (HC)
Server: HandyCache
Proxy-Connection: Keep-Alive



PS: А как народовцы с типом своего сервера прикольнулись Улыбка
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #38 : 31 января 2007, 05:08:09 »

Дем
Цитировать
Во, поймал:
А как ловил? Хотел было повторить эксперимент - не получается. На Опере не получается.

Согласно стандарта:
Цитировать
Поле If-Modified-Sinc
Поле заголовка запроса If-Modified-Since используется с методом GET, для того чтобы сделать его условным. Если запрошенный объект не был модифицирован со времени, указанного в этом поле, объект не будет прислан сервером, вместо этого будет послан отклик 304 (not modified) без какого-либо тела сообщения.
If-Modified-Since = "If-Modified-Since" ":" HTTP-date
Пример поля:
If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT
Дата - никаких размеров.

Обращаюсь к тому сайту - никаких размеров в If-Modified-Since в логе не вижу.

Вывод: то, что IE при запросе в поле If-Modified-Since указывает length не значит, что такой его запрос вообще будет понят. Удаленным сервером в т.ч.

А Server: ZX_Spectrum/1997 (Sinclair_BASIC) - это действительно весело. Веселый
Сообщить модератору   Записан
Дем
Постоялец
***

Репутация: +6/-3
Offline Offline

Сообщений: 167



« Ответ #39 : 31 января 2007, 10:52:53 »

Цитировать
А как ловил? Хотел было повторить эксперимент - не получается. На Опере не получается.
так специально оно не ловится... Надо чтобы закачка файла оборвалась....
Цитировать
Согласно стандарта:
Ну насколько помню это опциональный параметр, лень по RFC шарить. ИЕ его использует, и часть серверов его понимает - IIS точно Улыбка
Но суть не в нём, а в его значении. Которое не совпадает с "истинным размером" файла. И показывает, что в ряде случаев ИЕ плевать хотел на Content-Length.
А так как ословодов всё-таки большинство - то проблема актуальна.

Да, кстати - SeaMonkey ответ "304" не получает, несмотря на запрос с If-Modified-Since, отдаётся файл из кеша:

31.01.2007 10:34:42 # 195 >>> URL: http://balancer.ru/forum/punbb/img/avatars/2600.jpg
GET http://balancer.ru/forum/punbb/img/avatars/2600.jpg HTTP/1.1
If-Modified-Since: Wed, 31 Jan 2007 07:32:52 GMT
Host: balancer.ru
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; ru-RU; rv:1.9a1) Gecko/20060823 SeaMonkey/1.5a
Accept: image/png,*/*;q=0.5
Accept-Language: ru,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Proxy-Connection: keep-alive
Referer: http://balancer.ru/forum/punbb/viewtopic.php?id=35655&p=6
If-None-Match: "22db2d-f85-bb918880"


31.01.2007 10:34:42 # 195 <<< URL: http://balancer.ru/forum/punbb/img/avatars/2600.jpg
HTTP/1.1 200 OK
Via: 1.1 PROXY
Date: Wed, 31 Jan 2007 07:28:16 GMT
Age: 949
Content-Length: 3973
Content-Type: image/jpeg
Сообщить модератору   Записан
Страниц: 1 [2] 3 4 ... 7   Вверх
  Отправить эту тему    Печать  

 
Перейти в: