Проблемы индексации: Yandex Bot & Connection: keep-alive

1 234
stealthy
На сайте с 15.06.2006
Offline
69
#21

Мда... нафлудили то...

Dwarf:
CGI тут точно не при чем ISAPI приложения не используют CGI.

Вы че? CGI это просто протокол взаимодействия. ISAPI - это способ подключения сторонних DLL/EXE внутрь IIS.

Dwarf:
У вас вообще keep-alive включен на сервере?

Причем тут "включен/выключен" если я полностью поток формирую сам? Весь. Заголовки, данные. Полностью, понятно?

di_max:
Доказательства - есть?
keep-alive с тайм-аутом 15 сек, в Апаче включен, ISAPI пашут как часики, Яндекс лопает все и вся, без остановки.
Такая связка, Апач+ISAPI, используется с 2002 года...
Так что, нужно где-то что подпрямить...

Я пишу про IIS, а не про Apache. Причем тут вообще Апач? Вы хоть читайте сообщение прежде чем писать.

T.R.O.N:
Если перл установлен как ISAPI, то зачем его юзать через CGI. ActivePerl ставит ISAPI для поддержки именно ASP интерфейса. Мне кажется Вы просто перемудрили с серваком.

См. первый комментарий. Вы вообще все путаете в кучу - ISAPI, CGI, ASP...

Объясняю: ActivePerl под NT используется двумя способами: либо вы настраиваете IIS так, чтобы скрипт передавался на выполнение perl.exe (при каждом обращении spawnится новый процесс, exe отрабатывает и умирает) либо чтобы запрос передавался всегда сидящей в памяти DLLке по имени PERLIS.DLL. Это и есть ISAPI расширение IIS, которое грузится в память при первом обращении к скрипту и далее всегда сидит в памяти. В любом случае вы работаете по технологии CGI (Common Gateway Interface), который просто определяет что к скрипту CGI (неважно что это - файл pl, cgi, php, asp, java или что-то бинарное написанное на delphi или даже VB) напрявляются вот такие запросы, а оттуда ожидаются вот такие ответы.

Twilight CMS (http://www.twl.ru): есть Free версия, очень проста и удобна в использовании. Консультирую по любым вопросам. Новый спорт - практическая стрельба (http://nikit.in) - не для офисного планктона.
stealthy
На сайте с 15.06.2006
Offline
69
#22
T.R.O.N:
для того же, для чего написана конституция. Чтобы было понтово. Вы скрее всего даже почту отправляете с нарушением того самого RFC (сели у вас стоит прокс или внутренний сервак).
На счет дятла - если даже бот (который в большенстве случаев все делает нормально на остальных сайтах) может корячить сервак - то вину нужно искать не в нем.
Если проблемы с ботом, запретите ему ходить к себе на сайт, и все. Или внесите в игнор сетку IP яндекса.
PS Еще раз повторюс. Много сайтов моих стоит именно под IIS с перлом, пхп и т.д. Все нормально. Здесь явное проявление кривизны настроек или рук.

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

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

Поэтому берется сканер трафика и смотрится - что в порт вошло, а что вышло. И никаких там "криво настроено" в системном администрировании не бывает. Бывает только причина, которую админ или может найти, или не может.

stealthy
На сайте с 15.06.2006
Offline
69
#23
jackal:
Значит, когда кривые сайты отдают боту яндекса загзипованный контент, хотя бот яндекса в заголовках говорит, что он не понимает гзип - виноваты вебмастера кривых сайтов (не спорю). А когда кривой бот яндекса не закрывает соединение, хотя сервер ему в заголовках говорит, что соединение надо закрыть - опять виноваты вебмастера?

Кстати покажите мне, где яндекс говорит что он не умеет принимать gzip контент. Отсутствие заголовка Accept-Encoding приравнивается к умению принимать gzip по стандарту. А отсутствие gzip в перечне mime-typов ни о чем также не говорит.

А насчет рук - причем тут руки, я ж говорю - я НЕ ХОЧУ чтобы был keep-alive. Имею право. А когда он включен - в CGI НЕ ПОПАДАЕТ ЧАСТЬ ЗАПРОСОВ, это происходит где то выше скриптов - скорее всего на уровне интерпретатора perl (в perlis.dll). Никаких настроек там нет. Вообще. Так написана dll.

T.R.O.N:
Цитата:
Сообщение от YuraZ
Суть простая, получил Connection: close - устанавливай новый connect, яндекс этого не делает.

Вы готовы это подтвердить? Ведь для IIS вопросы с коннектом напрямую увязаны с указателем сессий. Поэтому бот, видимо, как раз и защищается от подобных вещей (неаученный горьким опытом кучи страниц на пхп с SID)

Я готов это подтвердить.

Про указатели сессий вы вообще пургу какую-то пишете. Причем тут вообще IIS и сессии? Сессия имеет отношение к конкретной реализации на каком-то языке. В ASP и PHP есть встроенные механизмы. На Perl сессий никаких нет, хочешь - делай сам. К IIS это вообще никак не относится. Обработка ASP сессий, например, реализована внутри обработчика языка ASP, который подключен к IIS как ISAPI расширение. Как там на дотнете не знаю, но идея та же.

stealthy
На сайте с 15.06.2006
Offline
69
#24
YuraZ:
> YuraZ, поищите по форуму, о проблемах с сессиями. Куки боту неважны. Он их просто не понимает. А вот SID в урле, это для него смерть.
А причем здесь принудительные кипаливы? Вот я чего не понимаю. Как они решают проблему sid в урлах?

Он вообще бредит по моему. SID в урлах парсятся яндексом, как и другие ключи. Пока не видел с этим никаких проблем. Тем более непонятно какое вообще отношение это имеет к тому с чего я начал.

Пора закрывать топик, все равно дельного никто ничего не подсказал.

YuraZ
На сайте с 05.06.2006
Offline
95
#25

> Кстати покажите мне, где яндекс говорит что он не умеет принимать gzip контент.

/ru/forum/comment/2005929 :)

Dwarf
На сайте с 06.10.2004
Offline
60
#26
stealthy:
Вы че? CGI это просто протокол взаимодействия. ISAPI - это способ подключения сторонних DLL/EXE внутрь IIS.

CGI и ISAPI - это интерфейсы. Интерфейсы взаимодействия программы стороны сервера и веб-сервера. Если программа использует интерфейс ISAPI, то не использует CGI, и наоборот. Например, при установленном по умолчанию ActiveState Perl, скрипты .pl обрабатываются perl.exe и результат отдается IIS через интерфейс CGI, скрипты .plx обрабатываются perlis.dll и результат отдается IIS через интерфейс ISAPI. Посему либо ISAPI, либо CGI. Есть конечно CGI Wrapper но это извращение :)

stealthy:
Причем тут "включен/выключен" если я полностью поток формирую сам? Весь. Заголовки, данные. Полностью, понятно?

Вы его на уровне HTTP формируете, а не на уровне TCP/IP. Если у IIS не включена поддержка keep-alive, соединение будет обрываться на уровне TCP/IP после отдачи контента. Ну выдаете вы хедер keep-alive, IIS-то откуда об этом знает, если у него в настройках стоит close? Отдал контент - закрыл сокет. Все.

А то, что бот Яндекса не понимает ответного close - это неправильно, тут никто не спорит. Но проще свой сервер наладить, чем ждать изменений у Яндекса.

Деревянные окна (http://www.wood-win.ru/)
T.R.O.N
На сайте с 18.05.2004
Offline
314
#27
jackal:
Да и кипалив 60 секунд хранится Значит, залогинился на форум, сходил поссать возвращаешься - и всё, заново логиниться? Что-то ни разу такого не встречал

Любой нормальный форум, как и любой сайт с авторизацией, держит инфу в куках, а не в сессиях.

Вы конечно много сказали, но только не о том, что писал я.

От воздержания пока никто не умер. Хотя никто и не родился! Prototype.js был написан теми, кто не знает JavaScript, для тех, кто не знает JavaScript (Richard Cornford)
T.R.O.N
На сайте с 18.05.2004
Offline
314
#28
stealthy:
Сессия имеет отношение к конкретной реализации на каком-то языке. В ASP и PHP есть встроенные механизмы. На Perl сессий никаких нет, хочешь - делай сам. К IIS это вообще никак не относится. Обработка ASP сессий, например, реализована внутри обработчика языка ASP, который подключен к IIS как ISAPI расширение. Как там на дотнете не знаю, но идея та же.

Вот это полная пурга. С IIS работаю давно, и могу сказать, что сессии в IIS - это его механизм, необходимы для внутренних связей и защиты приложений. А пхп, рерл, ява и т.д. при, CGI интерфейсе, - просто получают дуступ к ним, а для реализации через ASP (независимо от языка) - это встроенный экспортируемый объект.

IIS просто не может работать без сессий. Это одна из его основ (как сервера).

BigBrother
На сайте с 16.06.2006
Offline
96
#29
Dwarf:

А то, что бот Яндекса не понимает ответного close - это неправильно, тут никто не спорит. Но проще свой сервер наладить, чем ждать изменений у Яндекса.

Все он понимает и close обрабатывать умеет, у ТС скорее всего дело совсем в другом - например IIS очень любит подставлять свои заголовки, которые ни разу не соответствуют стандарту - и что в результате получается на выходе - спрогнозировать сложно.

Дальше без телепатии ничего сказать нельзя.

So many kings, but few jokers!
Dwarf
На сайте с 06.10.2004
Offline
60
#30
BigBrother:
Все он понимает и close обрабатывать умеет, у ТС скорее всего дело совсем в другом - например IIS очень любит подставлять свои заголовки, которые ни разу не соответствуют стандарту - и что в результате получается на выходе - спрогнозировать сложно.
Дальше без телепатии ничего сказать нельзя.

Вот что пишет топикстартер:

В запросе бота находится заголовок "Connection: keep-alive". Если сервер отвечает на это заголовком "Connection: close", бот плевать на это хотел. Он фигачит в поток второй запрос сразу не открывая нового соединения, как того требует стандарт.

Вот что написано в RFC 2616 (http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html):

If either the client or the server sends the close token in the Connection header, that request becomes the last one for the connection.

Итого: поведение бота стандарту не соответствует.

Про несоответствие стандарту хедеров IIS - да, подставляет. Типа X-Powered-By: ASP.NET. Только каким образом сие может повлиять на индексацию, если HTTP/1.1 200 OK, Content-type, Content-length и все остальное необходимое в хедерах присутствует?

Да и не замечал я проблем с индексацией серверов на IIS.

1 234

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий