Страниц: [1]   Вниз
  Отправить эту тему    Печать  
Автор Тема: Разрыв соединения после получения заголовков ответов 301, 302, 403, 404 и т.п.  (Прочитано 9429 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« : 18 апреля 2007, 11:55:01 »

если получен ответ 404 - зачем получать все, что может прицепом отдать сервер?
Согласен. Прицепом он может отдать очень много. Примеры уже были здесь.
Были у меня и еще несколько аналогичных. Например, такой случай:
зашел на http://www.eurosport.ru/football/russia-division-one/2007/livefullpage_mtc176785.shtml и получил среди прочего в качестве "награды" http://www.eurosport.ru/z/football/russia-division-one/2007/rsscomposition_mtc176785.xml с ответом 404 и весом 122,5 кБ! И этот 404 еще помимо собственного веса тянет за собой кучу вложенных URL, т.е. общий паразитный объем гигантский! И венцом творения становится обновление через короткие промежутки времени с соответствующим закачиванием этого 404 снова и снова!!!  Браво!
Таких страниц на евроспорте сотни!
Стало видно, что многие сайты сконфигурированы так, что если запрашиваешь отсутствующую страницу, то вместе с ответом 404 придет главная страница сайта какой бы большой она не была. Думаю, это беспредел! Злой Сейчас ходить по таким сайтам - стать меценатом-спонсором провайдера.
Очень часты также случаи, когда 404 придет с одной единственной записью типа "Запрашиваемая Вами страница не найдена на сервере", но в пестром обрамлении многочисленных рисунков и иных вложенных URL, чтоб соблюсти общий стиль сайта. И тоже доставай денежку  Улыбка
Имхо, прекращение дальнейшей закачки, когда она уже не актуальна (случаи 301, 302, 404), реализовать очень полезно.



 Отлично! Реализовано с версии HC 1.0 RC1 с помощью скриптов Lua !
« Последнее редактирование: 11 января 2008, 08:13:45 от DenZzz » Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #1 : 18 апреля 2007, 12:57:58 »

Цитировать
Если есть ответ 301/302 и есть location - зачем дожидаться остального ответа в котором может быть еще куча ненужного трафика? Или, если получен ответ 404 - зачем получать все, что может прицепом отдать сервер?
Вот этим я заниматься не буду. Юзер должен иметь возможность получить все, что ему отдает сервер, без купюр от имени НС (если не из кэша, то хоть в онлайн).
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #2 : 18 апреля 2007, 13:05:07 »

Вот этим я заниматься не буду.
К чему категоричность? Пусть такую возможность он получит с помощью опции.
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #3 : 18 апреля 2007, 14:20:11 »

mai62

Опция разрыва соединения после получения заголовков несостоятельных ответов 301, 302, 403, 404 и т.п. действительно бы не помешала!

Михаил привел вполне реальные примеры, когда по вине кривого уеб-мастера пользователь неожиданно для себя попадает на трафик (деньги) и ничего с этим поделать не может!

А разве не экономия трафика по настройкам пользователя - основная функция HC ?!...  Подмигивающий
« Последнее редактирование: 18 апреля 2007, 14:24:32 от DenZzz » Сообщить модератору   Записан
cepera_ang
Beta tester
*****

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

Сообщений: 355


« Ответ #4 : 18 апреля 2007, 18:18:28 »

Я тоже согласен, что такие ответы можно обрывать на полуслове. Ибо
Юзер должен иметь возможность получить все, что ему отдает сервер
Юзер с помощью НС получает инструмент НЕ получать весь мусор который ему отдает сервер (рекламу, кривые редиректы, 404 и т.д.)
Сообщить модератору   Записан
NothingAnother
Beta tester
*****

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

Сообщений: 434

Spoiler


« Ответ #5 : 21 апреля 2007, 19:37:03 »

Юзер должен иметь возможность получить все, что ему отдает сервер, без купюр от имени НС
Именно возможность, а не обязанность, т.е. Михаил прав - в данном случае весьма уместна опциональность
Сообщить модератору   Записан

Мы тоже не всего читали Шнитке!..
© В. Вишневский
v0lt
Beta tester
*****

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

Сообщений: 127


« Ответ #6 : 22 апреля 2007, 00:31:08 »

Цитата: mai62
Юзер должен иметь возможность получить все, что ему отдает сервер, без купюр от имени НС (если не из кэша, то хоть в онлайн).
Поддерживаю, а то бывает сидишь гадаешь, кто на этот раз безобразничает: браузер, прокси или фаервол?

Цитата: Михаил
Стало видно, что многие сайты сконфигурированы так, что если запрашиваешь отсутствующую страницу, то вместе с ответом 404 придет главная страница сайта какой бы большой она не была. Думаю, это беспредел! Злой Сейчас ходить по таким сайтам - стать меценатом-спонсором провайдера.
По сути, очень желательно чтобы сервер выдал что-то вразумительное, вместо стандартного ответа 404. Но согласен бывают извращения...
На счет блокировки я против. Могу предложить чтобы НС генерировал свою страничку 404 со ссылкой. Например: "404: По данной ссылке ничего нет, сервер предлагает перейти [сюда]".
Но возможно ли такое, и станет ли от этого лучше? Улыбка
Сообщить модератору   Записан
Rick
Администратор
*****

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

Сообщений: 868


WWW
« Ответ #7 : 22 апреля 2007, 00:37:00 »

Юзер должен иметь возможность получить все, что ему отдает сервер, без купюр от имени НС (если не из кэша, то хоть в онлайн).
Поддерживаю, а то бывает сидишь гадаешь, кто на этот раз безобразничает: браузер, прокси или фаервол?
HC сплошь и рядом лишает юзера этой возможности и, что самое интересное - именно этими "купюрами" обусловлена польза от НС.

Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #8 : 29 ноября 2007, 13:37:57 »

В свете темы: "Кэшировать не только ответы 200":

у "404" может быть как полезный, так и бесполезный контент!
"Полезный" (как на 3dnews.ru) надо кэшировать целиком, а для "бесполезного" (как на thg.ru) прерывать закачку и сохранять только сам факт отрицательного ответа.

Нужен настраиваемый список: отрицательные ответы каких сайтов надо кэшировать, а каких - прерывать, не догружая!
Список как в "Серверах-посредниках" (с поддержкой RegExp), разделенный на 2 части: "Прерывать" и "Кэшировать".
Сначала проверяется раздел "Прерывать", если попал - "Стоп" и разрыв соединения. Не попал - переходим к проверке раздела "Кэшировать".
Если и туда не попал - ничего особого не предпринимаем, действуем как раньше.
« Последнее редактирование: 29 ноября 2007, 14:59:06 от DenZzz » Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #9 : 30 ноября 2007, 16:12:44 »

Может, лучше реализовать полный разбор заголовков, как давно предлагалось. Рассматриваемая ситуация будет тогда частным случаем.
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #10 : 30 ноября 2007, 16:24:18 »

Может, лучше реализовать полный разбор заголовков, как давно предлагалось.

Лучше - да. Проще и быстрее - нет!
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #11 : 30 ноября 2007, 17:30:18 »

Цитировать
Может, лучше реализовать полный разбор заголовков
А что ты понимаешь под этим?
Сообщить модератору   Записан
popkov
Beta tester
*****

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

Сообщений: 349


« Ответ #12 : 30 ноября 2007, 19:39:22 »

Может, лучше реализовать полный разбор заголовков, как давно предлагалось. Рассматриваемая ситуация будет тогда частным случаем.
А что ты понимаешь под этим?
Насколько я понимаю, это идея рассматривать весь заголовок как один многострочный текстовый объект - регулярные выражения прекрасно умеют работать с ними! Таким образом, Правило будет применяться ко всему заголовку пакета, ко всем строкам. Например, тогда можно писать правила вида (конкретный вид может завистеть от обработчика RegExp): "^HTTP 1\.1 404 Forbidden$.*^Content-Length: \d+$". В данном случае символы каретка "^" и доллар "$" означают начало и конец любой строки, но не всего текстового объекта (а точка означает также и символ перехода на новую строку). Не знаю, какие управляющие символы соответствуют им в обработчике RegExp, используемом HC. Однако такая возможность очень удобна, полезна и проста, несмотря на это! Другой колонкой можно писать правило для URL... В общем, я обеими руками ЗА !!! Подмигивающий
« Последнее редактирование: 30 ноября 2007, 19:48:55 от popkov » Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #13 : 30 ноября 2007, 20:11:41 »

Насколько я понимаю, это идея рассматривать весь заголовок как один многострочный текстовый объект

Ну, так усложнять вовсе не обязательно - можно сделать и в более дружественном для простого пользователя интерфейсе, а именно в виде таблицы значений заголовков и действий в случае совпадения.
Идея описана в теме: "Управление загрузкой по Заголовкам".

Расширение этой идеи описывалось в теме: "Двусписочная система: классификатор трафика и политика фильтрации".
Сообщить модератору   Записан
Страниц: [1]   Вверх
  Отправить эту тему    Печать  

 
Перейти в: