Ru-Board.club
← Вернуться в раздел «Программы»

» HandyCache ( Часть 4 )

Автор: hpoint
Дата сообщения: 18.09.2006 09:14
Вот я и говорю, интересный разговор получился. Обычно на такие вещи акценты не ставятся. Спасибо за ссылки и этот "спор".
Автор: C0USIN
Дата сообщения: 18.09.2006 09:25
forever
Цитата:
хочешь соединиться с сервером и не можешь этого сделать, потому-что IP в кэше DNS устарел

Довольно редкое событие. Практически во всех случаях причина, когда не устанавливается соединение, в плохой связи или перегруженности сервера.
Насколько я понял, сейчас записи в кэше хранятся вечно, пока вручную их не удалишь.
Цитата:
каким сделать тайм-аут?
В Outpost стоит 7 дней по умочанию.
Автор: forever
Дата сообщения: 18.09.2006 09:37
C0USIN

Цитата:
Довольно редкое событие.

Ну да, редко да метко - не открывается сайт и ломай, юзер, голову почему.


Цитата:
Практически во всех случаях причина, когда не устанавливается соединение, в плохой связи или перегруженности сервера.

Плохую связь или перегруженность не "пощупаешь". НС не знает в чем проблема и запрашивает IP еще раз. Даже если проблема не в смене IP - что ж, лишний раз подтвердилась актуальность IP в кэше.


Цитата:
Насколько я понял, сейчас записи в кэше хранятся вечно, пока вручную их не удалишь.

Очистка будет сделана.


Цитата:
В Outpost стоит 7 дней по умочанию.

Не путай. Это для _неиспользуемых_ адресов. Если вчера ты посещал сервер, а сегодня у сервера сменился IP то ты на него уже не зайдешь: ОР будет тупо выдавать старый IP и никак не попытается разрулить ситуацию. НС пытается поступать более дружественно по отношению к пользователю. Сейчас эта "дружественность" пока выходит боком но будет доведена до ума.
Автор: DenZzz
Дата сообщения: 18.09.2006 10:15
forever

На самом деле, тайм-аут не помешал бы! Не удалось HC соединиться с IP из кэша, попробовал еще заданное число раз через настраиваемый промежуток времени. Если все попытки тщетны, то попытался запросить новый IP у DNS-сервера.

Цитата:
Ты хочешь соединиться с сервером и не можешь этого сделать, потому-что IP в кэше DNS устарел - каким сделать тайм-аут?

Ну, подождал несколько лишних секунд, заданных в настройках, - велика беда! Не хочешь ждать - отключи таймаут (поставь 0 повторов). И все!
Да и вообще, случаи изменения IP встречаются редко...
Автор: forever
Дата сообщения: 18.09.2006 11:11
DenZzz

Цитата:
На самом деле, тайм-аут не помешал бы! Не удалось HC соединиться с IP из кэша, попробовал еще заданное число раз через настраиваемый промежуток времени. Если все попытки тщетны, то попытался запросить новый IP у DNS-сервера.

Именно так и происходит. Опции "повторные соединения/запросы" с паузами работают как всегда.


Цитата:
Ну, подождал несколько лишних секунд, заданных в настройках, - велика беда!

Наверно ты что-то не так понял - настройки никто не игнорирует.

Таймаут запроса к системе за новым IP зависит естественно от системы: когда она дала ответ - тогда и дала.
Автор: DenZzz
Дата сообщения: 18.09.2006 12:00
forever

Цитата:
Именно так и происходит. Опции "повторные соединения/запросы" с паузами работают как всегда.

Не совсем так! По моим наблюдениям, если DNS-сервер и канал тормозит, то HC уже после первого неудачного соединения пишет: "Service Unavailable" и повторно соединиться уже не пытается...

Тогда, может, не надо при ошибке DNS писать сразу "Service Unavailable", а переходить на повторное соединение в соответствие с уже имеющимися настройками...
Автор: forever
Дата сообщения: 18.09.2006 12:20
DenZzz

Цитата:
По моим наблюдениям, если DNS-сервер и канал тормозит, то HC уже после первого запроса пишет: "Service Unavailable" и повторные запросы уже не идут...

Мы немного о разном похоже. Повторы/паузы действуют при обращении к серверам (не DNS).
При запросе к DNS все отдается системе: она сама отправляет запрос DNS-серверу, переходит на использование доп.сервера если первый недоступен и т.д. Учитывая, что у всех по два DNS-сервера (один крайне редко, как и более двух), довольно трудно предположить, что оба DNS-сервера вдруг стали недоступны/перегружены - значит нет соединения, значит об этом нужно сообщить пользователю.
Можно применять здесь те же настройки повторов/пауз что и для других запросов, но не уверен, что это нужно. Надо подумать.
Автор: DenZzz
Дата сообщения: 18.09.2006 12:59
forever

Цитата:
довольно трудно предположить, что оба DNS-сервера вдруг стали недоступны/перегружены - значит нет соединения, значит об этом нужно сообщить пользователю.

На нестабильном канале, типа GPRS, это вполне возможно! Соединение может "подвисать" на несколько десятков секунд! Поэтому сразу трубить, что DNS-сервер недоступен, ИМХО, неправильно. Те, кто столкнулся с этой проблемой, говорили здесь на форуме, что при отключении DNS-кэша страницы грузятся, т.е. соединение все-таки есть - просто надо подождать.

А у hpoint так вообще - канал быстрый, а проблема та же. В DNS-кэше пусто, а в логе запись:

Код: 18.09.2006 0:26:36 # 509: DNS resolve www.yandex.ru --> 213.180.204.11 (From cache)
Автор: forever
Дата сообщения: 18.09.2006 13:36
DenZzz

Цитата:
Поэтому сразу трубить, что DNS-сервер недоступен, ИМХО, неправильно.

C этим - к Windows.
Хотя... Кто-то может аргументированно сказать, делают ли браузеры повторные запросы к DNS (к системе) при неполучении ответа (точнее получении ответа от системы, что нет ответа от DNS)? Вроде бы так же делают один запрос - поэтому никакой разницы с НС в этом нет.


Цитата:
А у hpoint так вообще - канал быстрый, а проблема та же. В DNS-кэше пусто, а в логе запись:

Не верю я в эту запись. Точнее в то, что в кэше пусто.

Добавлено:

Сейчас проверил - Опера делает ДВА запроса с интервалом 15 секунд. НС - один запрос.

Добавлено:
IE делает ОДИН запрос (как и НС).
Автор: DenZzz
Дата сообщения: 18.09.2006 14:30
forever

Цитата:
C этим - к Windows.

Так HC же может забить на ответ системы и послать еще столько запросов, сколько указано у него в настройках...
Два, как в Опере, - это не предел... Хотя, лучше, чем один.
Автор: hpoint
Дата сообщения: 18.09.2006 14:39
DenZzz

Цитата:
Кто знает, может это те же кратковременные проблемы с DNS-сервером... или с Яндексом...
У меня стабильно яндекс с DNS не работает. Проверяю регулярно. Отключаю DNS - яндекс работает и работает моментально, без пауз.


Добавлено:
forever

Цитата:
Не верю я в эту запись. Точнее в то, что в кэше пусто.

Если не веришь, то могу тебе прислать DNScache.dat. Нельзя же не верить до такой степени!
Автор: forever
Дата сообщения: 18.09.2006 14:46
DenZzz

Цитата:
Два, как в Опере, - это не предел...

А больше имхо и не надо. Последовать примеру Оперы - более чем достаточно (но и не обязательно). Имхо пользователь сам в состоянии нажать Пуск/Перейти если не верит сообщению (или обратить внимание на состояние соединения, или перейти в автономку если верит). Я, например, обычно рефлекторно шлю повторный запрос. Другое дело, что _сейчас_ пользователь лишен возможности это сделать, но это будет приведено в норму.


Добавлено:
hpoint

Цитата:
Если не веришь, то могу тебе прислать DNScache.dat

Пришли. На fopevep gmail
Автор: JohnC
Дата сообщения: 18.09.2006 14:55
forever

Цитата:

Цитата: Цитата:
если он отсутствует


Это как?
Автор: DenZzz
Дата сообщения: 18.09.2006 15:01
mai62 , forever

В моем понимании цикл повторов должен быть такой (лень рисовать, поэтому просто опишу):

1. Пытаемся загрузить страницу по IP из DNS-кэша;
2. Если неудачно и запись в DNS-кэше старше n минут, пытаемся спросить IP у системы (DNS-сервера);
3. Если удалось получить IP с DNS-сервера - пишем его в кэш со свежей датой и пытаемся по нему загрузить страницу.
4. Если не удалось загрузить страницу или DNS Service Unavailable - через заданный в настройках интервал идем в п.1.

Повторяем цикл в течение заданного в настройках времени.

Заметьте, пункты 2 и 3 будут повторяться, только если DNS-сервер ничего не отвечает.
А так, пункты 1 и 4 - это обычная работа функции повторных соединений, которая есть в HC уже давно...
Автор: forever
Дата сообщения: 18.09.2006 15:05
JohnC

Цитата:
Имеется ввиду тег META, а именно информация о кодировке

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


Цитата:
Повторюсь HandyCache0.96b1c нормально добавлял информацию о кодировке в .html файл.

Честно говоря, я не в курсе.

Добавлено:
DenZzz

Цитата:
2. Если неудачно и запись в DNS-кэше старше n минут, пытаемся спросить IP у системы (DNS-сервера);

А что делаем если n минут еще не прошли? Говорим пользователю "покури пока, браток" или вовсе ничего не делаем/ не показываем?


Цитата:
4. Если не удалось загрузить страницу или DNS Service Unavailable - через заданный в настройках интервал идем в п.1.

Тот же вопрос: что делаем пока не истек "заданный в настройках интервал"?

Добавлено:
DenZzz, ты видимо имел в виду секунды а не минуты.
И что если записи в кэше вообще нет?
Автор: DenZzz
Дата сообщения: 18.09.2006 15:32
forever

Цитата:
А что делаем если n минут еще не прошли?

Пропускаем выполнение п.2 и 3, т.е. не запрашиваем IP у DNS-сервера, т.к. мы уже недавно узнали, что он свежий, и просто идем к п.4 !

Цитата:
Тот же вопрос: что делаем пока не истек "заданный в настройках интервал"?

А что ты сейчас делаешь 3 секунды (или сколько там у тебя настроено), когда видишь в Мониторе HC: "502 Bad Gateway" - нервно куришь, разумеется...


Цитата:
ты видимо имел в виду секунды а не минуты.

Нет, я говорил про минуты! Зачем спрашивать IP у DNS-сервера каждые n секунд? Это неразумно. Так часто IP не меняются!

Цитата:
И что если записи в кэше вообще нет?

Тогда пропускаем п.1 и первую половину п.2 - т.е. сразу запрашиваем IP у DNS-сервера.
Автор: forever
Дата сообщения: 18.09.2006 15:51
DenZzz
Чтобы не мучить тебя наводящими вопросами просто расскажу как должно быть:
1. Адреса нет в кэше - запрос к системе, получаем
1.1 IP сервера - соединяемся, если соединиться не удается - обычное сообщение об ошибке соединения;
1.2 отрицательный ответ: пишем что домен неизвестен, имя домена помещается в кэш отрицательных ответов;
1.3 неудавшийся запрос (не получен ответ): пишем что не удалось установить соединение с DNS-сервером.

2. Адрес есть в кэше - соединение с сервером
2.1 соединение установлено - все довольны;
2.2 соединение не установлено - см. п.1 + обновление адреса в кэше при 1.1 или удаление записи при 1.2
Автор: JohnC
Дата сообщения: 18.09.2006 16:35
forever

Цитата:
Под "это как?" подразумевалось, что как это, в оригинале этого тега нет, значит без НС ты и так видишь "набор каракуль" - наверное же нет?

В оригинале текст в браузере показывается правильно и тега о кодировке нет. Как же так? А дело в том, что информация о кодировке передается в заголовке ответа сервера
"HTTP/1.1 200 OK"
"Content-Type: text/html; utf-8"
Когда же файл берется из кеша, то HandyCache посылает заголовок ответа с кодировкой указанной в теге МЕТА, а если тега нет, то и кодировку не указывает, взять то неоткуда.
Браузер(Firefox,MYiE2) в таком случае отсасывает с авто определением кодировки.

mai62
исправь плиз.
Автор: hpoint
Дата сообщения: 18.09.2006 16:52
forever

Цитата:
Пришли. На fopevep gmail
Извини за задержку отсылки. Отослал.
Автор: DenZzz
Дата сообщения: 18.09.2006 17:39
forever

Цитата:
просто расскажу как должно быть

"ИМХО" не забывай добавлять!

Цитата:
1.2 отрицательный ответ: пишем что домен неизвестен, имя домена помещается в кэш отрицательных ответов;

Это еще зачем? Мало ли какое немыслимое сочетание букв пришло в голову юзеру! Ни к чему хранить воспоминания об этом!

В целом, почти так как ты написал и работает сейчас HC, только почему-то у некоторых проблемы с DNS-кэшем...

А как в твою схему вписываются повторные соединения/запросы при ошибке, которые есть сейчас? IP будет запрашиваться у системы (DNS-сервера) только 1 раз?

В своем предложении я пытался вписать схему повторных DNS-запросов при ошибке в существующий алгоритм повторных соединений/запросов, тот что настраивается в "Управление загрузкой"! Ты же просто описал, то что уже создано, но работает не у всех...
Автор: C0USIN
Дата сообщения: 18.09.2006 17:56
JohnC
Можешь еще привести примеры? Не могу воспроизвести твою ошибку. Специально распаковал gzip - браузеры распознают кодировку правильно.
А почему у тебя страницы в кэше получаются несжатые?
Автор: forever
Дата сообщения: 18.09.2006 18:00
DenZzz

Цитата:
"ИМХО" не забывай добавлять!

"ИМХО" здесь не к месту.


Цитата:
Это еще зачем? Мало ли какое немыслимое сочетание букв пришло в голову юзеру!

Вот именно поэтому, чтобы не было бессмысленных обращений к DNS-серверу и делается кэш отрицательных ответов. TTL хранящихся в нем записей небольшое: в НС сейчас это всего 5 минут.
Это то, что ты называешь: "Зачем спрашивать IP у DNS-сервера каждые n секунд? Это неразумно." - это тем более неразумно если от DNS-сервера получен ответ, что адреса не существует.


Цитата:
В целом, почти так как ты написал и работает сейчас HC, только почему-то у некоторых проблемы с DNS-кэшем...

Проблема именно в кэше отрицательных ответов - сейчас в него попадают и отрицательные ответы и неудавшиеся запросы.


Цитата:
А как в твою схему вписываются повторные соединения/запросы при ошибке, которые есть сейчас? IP будет запрашиваться у системы (DNS-сервера) только 1 раз?

При какой ошибке? При той, что запрошен адрес для несуществующего домена или при той, что вообще не удалось получить какой-либо ответ от DNS-сервера? Прочитай еще раз - я все это написал.


Цитата:
Ты же просто описал, то что уже создано, но работает не у всех...

Когда будет поправлен кэш отрицательных ответов отпадет нужда в придумывании каких-либо алгоритмов повторных запросов. Остается вопрос нужно ли по примеру Оперы делать два запроса с интервалом в 15с (а может в 10?) или отставить это пользователю. Подождем mai62.

Добавлено:
hpoint

Цитата:
Извини за задержку отсылки. Отослал.

Получил, щас посмотрю.

Добавлено:
hpoint
Посмотрел. В том кэше что ты прислал от яндекса есть только favicon.yandex.ru 213.180.204.36
Поставил себе - без проблем зашел на www.ya.ru, www.yandex.ru - соответствующие записи добавились в кэш как и "попутные" img.yandex.net и yaca.yandex.ru

Не готов что-то предположить, но склонен думать, что проблема все-таки на твоей стороне.
Автор: DenZzz
Дата сообщения: 18.09.2006 18:22
forever

Цитата:
При какой ошибке? При той, что запрошен адрес для несуществующего домена или при той, что вообще не удалось получить какой-либо ответ от DNS-сервера?

1. Допустим от DNS не получен ответ:

Цитата:
1.3 неудавшийся запрос (не получен ответ): пишем что не удалось установить соединение с DNS-сервером.

Что дальше? Будем повторять запрос или скажем пользователю, что его Инет-канал полное г...

2. Допустим:

Цитата:
2.2 соединение не установлено - см. п.1 + обновление адреса в кэше при 1.1 или удаление записи при 1.2

Но это произошло не из-за устаревшего IP, а просто сервер дурит или канал. HC делает еще несколько попыток соединиться через определенные интервалы, настраиваемые в "Управление загрузкой". По твоей схеме будем каждые 3 секунды опять спрашивать IP у DNS-сервера?
Автор: forever
Дата сообщения: 18.09.2006 18:32
DenZzz

Цитата:
>> 1.3 неудавшийся запрос (не получен ответ): пишем что не удалось установить соединение с DNS-сервером.     
Что дальше? Будем повторять запрос или скажем пользователю, что его Инет-канал полное г...

"Пишем что не удалось установить соединение с DNS-сервером" - как написано, так и следует читать: пользователь получает "Не получен ответ от DNS-сервера". В 1.1 соответственно показываем пользователю обычное сообщение об ошибке когда не удалось соединиться с сервером.


Цитата:
Но это произошло не из-за устаревшего IP, а просто сервер дурит или канал.

И то и другое означает одно: от DNS-сервера не получено ответа. Никакого.


Цитата:
По твоей схеме будем каждые 3 секунды опять спрашивать IP у DNS-сервера?

Незнаю между каких строк ты это вычитал. Я этого не писал. И зачем бы это делать также не знаю.

hpoint
Я не знаю как смоделировать у себя твою проблему - у меня ее просто нет. Может у тебя есть идеи?
Автор: mai62
Дата сообщения: 18.09.2006 18:35
JohnC

Цитата:
исправь плиз.

Проблема имеет место быть, исправлю.

Добавлено:
hpoint
Посмотри ПМ
Автор: DenZzz
Дата сообщения: 18.09.2006 18:41
forever

Цитата:
И то и другое означает одно: от DNS-сервера не получено ответа. Никакого.

Я не о том! Допустим, от DNS-сервера получен ответ, IP нам стал известен, но он не отвечает! К какому пункту твоей схемы идем на повторный запрос нужной нам страницы?
Автор: forever
Дата сообщения: 18.09.2006 18:43
DenZzz

Цитата:
IP нам стал известен, но он не отвечает!

1.1 - а дальше на усмотрение пользователя.
Автор: DenZzz
Дата сообщения: 18.09.2006 18:47
forever

Цитата:
"Пишем что не удалось установить соединение с DNS-сервером" - как написано, так и следует читать: пользователь получает "Не получен ответ от DNS-сервера".

Так об этом тебе и говорят, что проблема может быть временной и надо попытаться еще раз получить IP, а не говорить пользователю сразу "Service Unavailable", как сейчас!
Автор: forever
Дата сообщения: 18.09.2006 18:50
DenZzz

Цитата:
проблема может быть временной

НС ясновидением не обладает. Может быть оно есть у пользователя? В любом случае, если пользователь не доверяет этому сообщению он повторно нажмет Пуск/Перейти и будет выполнена посторная попытка получить IP для запрашиваемого адреса. Все в руках пользователя.


Цитата:
а не говорить пользователю сразу "Service Unavailable"

Когда НС получил такой ответ - тогда он и передал его пользователю.
Автор: DenZzz
Дата сообщения: 18.09.2006 19:05
forever

Цитата:
В любом случае, если пользователь не доверяет этому сообщению он повторно нажмет Пуск/Перейти и будет выполнена посторная попытка получить IP для запрашиваемого адреса. Все в руках пользователя.

Вот мы и вернулись к началу спора!
Именно эта ручная работа и утомляет на медленных каналах! Опера делает 2 запроса - чем HC хуже?
Проблема с "Service Unavailable" поднималась здесь уже не раз - почему бы не попытаться ее решить посредством HC, не заставляя пользователя жать на лишние кнопки?

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Folder Marker (FolderMarker)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.