SASGIS

Веб-картография и навигация

Опция: "Заменять старые файлы - Только при их различии"

программа для загрузки и просмотра спутниковых снимков Земли, Луны, Марса предоставленных сервисами Google Maps и Космоснимки. Возможность работы с GPS приёмником.

Модератор: Tolik

Re: ВОПРОСЫ АБСОЛЮТНЫХ НОВИЧКОВ

Сообщение zed » 03 июл 2011, 09:48

Дело обстоит так: когда нужно загрузить тайл, вызывается системная функция InternetOpenURL (WinInet) с соответствующими параметрами и до тех пор, пока САС не вызовет функцию InternetCloseHandle загрузка данных из интернета происходит средствами системы и абсолютно неподконтрольно со стороны САС. И вот, пока система грузит данные, САС последовательно запрашивает у неё StatusCode, затем полностью хидеры ответа сервера, затем ищет поля Content-Type и Content-Lenght в хидерах и принимает решение о запросе у системы тела ответа или о дисконнекте. Поэтому теоретически, при медленном интернете, САС может успеть выполнить все свои проверки до того как система загрузит файл целиком и разорвать соединение, но следует учитывать, что ответ про StatusCode САС получит только после того, как система загрузит некий минимальный буфер и не ранее (размер этого буфера в wininet мне доподлинно не известен).

P.S. Всё вышесказанное справедливо для реализации качалки в САС "на сегодня".

За это сообщение автора zed поблагодарили: 3
gpsMax (13 июл 2011, 23:41) • Parasite (03 июл 2011, 11:28) • rsuan (03 июл 2011, 16:48)
Рейтинг: 15.79%
 
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 568 раз.

Re: ВОПРОСЫ АБСОЛЮТНЫХ НОВИЧКОВ

Сообщение divinets » 03 июл 2011, 10:24

zed писал(а):минимальный буфер и не ранее (размер этого буфера в wininet мне доподлинно не известен).

У меня например "на глазок" определен это минимальный размер - где-то 2/3 от MTU, меньше не припомню.
divinets
Новичок
 
Сообщения: 18
Зарегистрирован: 14 май 2011, 14:52
Благодарил (а): 0 раз.
Поблагодарили: 7 раз.

Re: ВОПРОСЫ АБСОЛЮТНЫХ НОВИЧКОВ

Сообщение Parasite » 03 июл 2011, 11:27

zed писал(а):Поэтому теоретически, при медленном интернете, САС может успеть выполнить все свои проверки до того как система загрузит файл целиком и разорвать соединение

Что и требовалось доказать. Соответственно при "очень быстром интернете HC<->SAS" в буфер успевает влетать всё, а потом система уже разбирается что к чему и рвет коннект+очищает буфер от хлама. Так как HC ожидает подтверждения принятия пакета, а получает в ответ DISCONNECT - то у себя в статистике он и отмечает "Client disconnected", несмотря на то что данные были таки уже переданы.
Имхо, конечно. В тонкостях реализаций HCшных процедур я не влазил.
The only difference between me and a mad man is that I am not mad. /Salvador Dali/
Изображение

За это сообщение автора Parasite поблагодарил:
rsuan (03 июл 2011, 16:49)
Рейтинг: 5.26%
 
Аватара пользователя
Parasite
Администратор
 
Сообщения: 5646
Зарегистрирован: 23 окт 2008, 17:38
Благодарил (а): 124 раз.
Поблагодарили: 512 раз.

Re: ВОПРОСЫ АБСОЛЮТНЫХ НОВИЧКОВ

Сообщение rsuan » 03 июл 2011, 16:16

Вот же дебри пошли. Ну, насколько я понял, специалисты склоняются к тому, что обычно скачивается (учитывается в трафике) весь файл, хотя теоретически может скачиваться не весь. В общем-то, тогда смысла в опции "только при их различии" нет (я не к тому, чтобы её убрать).
Спасибо всем, участвующим в обсуждении этого вопроса. Модератору предлагаю вынести посты по этому вопросу в отдельную тему. Может быть, кто-то ещё точности привнесёт.
rsuan
Соображающий
 
Сообщения: 71
Зарегистрирован: 18 июн 2011, 17:46
Благодарил (а): 35 раз.
Поблагодарили: 2 раз.

Re: Опция: "Заменять старые файлы - Только при их различии"

Сообщение zOn » 13 июл 2011, 11:57

Расскажу историю:
давным-давно, когда программу писал только Фей, была поднята тема о проверке изменения файлов на гугле. и был найден способ узнавать об этом не скачивая тайл вообще - вместо GET отправлять HEAD. Сначало было счастье, т.к. скорость проверки соответствия тайлов выросла на порядок, а то и 2 порядка. Но счастье длилось не долго, т.к. Гуглу это дело показалось похожим на ддос и он быстренько банил. Пришлось отказаться от данной фичи, но не знаю почему не применять это к другим сервисам (не таким жадным как гугл).
Вот и сказочке конец.

За это сообщение автора zOn поблагодарил:
rsuan (13 июл 2011, 19:41)
Рейтинг: 5.26%
 
zOn
Советчик
 
Сообщения: 254
Зарегистрирован: 03 фев 2009, 01:05
Благодарил (а): 25 раз.
Поблагодарили: 19 раз.

Пред.

Вернуться в SAS.Планета

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14

cron