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

123 4
stealthy
На сайте с 15.06.2006
Offline
69
3964

Разработчикам "яндексирующего" бота - вопрос, интересующимся - к сведению.

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

Трассировку веду через CommView, версия протокола HTTP/1.1. Вопрос к разработчикам яндекс-бота - можно ли наконец починить это безобразие? Для IIS/ISAPI фильтров это просто бедствие. Подозреваю, что IIS сервера с самописными скриптовыми движками процентов на 40 толком из-за этого вообще не индексируются, поскольку каждый второй запрос практически улетает в трубу.

Twilight CMS (http://www.twl.ru): есть Free версия, очень проста и удобна в использовании. Консультирую по любым вопросам. Новый спорт - практическая стрельба (http://nikit.in) - не для офисного планктона.
Revan
На сайте с 09.09.2005
Offline
321
#1

stealthy, респект за умные слова.

Только я не понял - а чем все-таки мешает, то в один поток фигачит? Просто разными запросами...?

С уважением, Прокофьев Александр, founder KudaGo.com (http://kudago.com). Отдаем информацию обо всех мероприятиях в РФ + Киев по API (/ru/forum/912869) всем желающим.
Dwarf
На сайте с 06.10.2004
Offline
60
#2

stealthy, ээээ.... А почему бы не включить на сервере keep-alive? И серверу легче.

По своему опыту: несколько IIS с всякими разными ISAPI фильтрами (UrlScan, Cyrcoder, и все те, что по умолчанию ставятся) индексируются без проблем.

Деревянные окна (http://www.wood-win.ru/)
stealthy
На сайте с 15.06.2006
Offline
69
#3
Dwarf:
stealthy, ээээ.... А почему бы не включить на сервере keep-alive? И серверу легче.

PERL ISAPI закрывает поток сразу как только погибает CGI. Он не получает вообще всех запросов, которые идут вдогонку. Так устроен ActivePerl по всей видимости. Поскольку с этим ничего поделать нельзя, я могу только принудительно возвращать Connection: close. Но Яндексу на это наплевать.

В результате он приходит за robots.txt, получает его с заголовком connection: close, но коннект не закрывает и требует сразу же в этом потоке главную страницу сайта (как правило). В этот момент CGI уже отработала запрос и умерла. IIS рубит коннект и робот Яндекса отваливает по таймауту.

А потом люди удивляются почему морды выпадают.

И такая хренотень началась с конца ноября. Почти уверен, что в конце ноября в робота как раз и добавили поддержку keep-alive, только реализовали криво.

Dwarf
На сайте с 06.10.2004
Offline
60
#4
stealthy:
PERL ISAPI закрывает поток сразу как только погибает CGI. Он не получает вообще всех запросов, которые идут вдогонку. Так устроен ActivePerl по всей видимости. Поскольку с этим ничего поделать нельзя, я могу только принудительно возвращать Connection: close. Но Яндексу на это наплевать.

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

stealthy:
В результате он приходит за robots.txt, получает его с заголовком connection: close, но коннект не закрывает и требует сразу же в этом потоке главную страницу сайта (как правило). В этот момент CGI уже отработала запрос и умерла. IIS рубит коннект и робот Яндекса отваливает по таймауту.

А robots.txt у вас тоже ISAPI обрабатывается? 😕

stealthy:
А потом люди удивляются почему морды выпадают.
И такая хренотень началась с конца ноября. Почти уверен, что в конце ноября в робота как раз и добавили поддержку keep-alive, только реализовали криво.

Неа. Гораздо раньше. Вот отловленные хедеры (смотрите на дату)


Accept: text/html, application/pdf;q=0.1, application/rtf;q=0.1, text/rtf;q=0.1, application/msword;q=0.1, application/x-shockwave-flash;q=0.1, application/vnd.ms-excel;q=0.1, application/vnd.ms-powerpoint;q=0.1
Accept-Language: ru, uk, be, en, *;q=0.01
Connection: Keep-Alive
Host: site.ru
User-Agent: Yandex/1.01.001 (compatible; Win16; I)
If-Modified-Since: Thu, 28 Jul 2005 22:09:03 GMT
From: webadmin@yandex.ru

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

di_max
На сайте с 27.12.2006
Offline
262
#5
stealthy:
И такая хренотень началась с конца ноября. Почти уверен, что в конце ноября в робота как раз и добавили поддержку keep-alive, только реализовали криво.

Доказательства - есть?;)

keep-alive с тайм-аутом 15 сек, в Апаче включен, ISAPI пашут как часики, Яндекс лопает все и вся, без остановки.

Такая связка, Апач+ISAPI, используется с 2002 года...

Так что, нужно где-то что подпрямить... ;)

Ни чего личного, настроение просто хорошее!

// Все наши проблемы от нашего не знания...
jackal
На сайте с 27.04.2006
Offline
80
#6

di_max, stealthy говорит как раз о том, что яша-бот кладет на заголовок connection: close, т.е. когда keep-alive вЫключен, а не включен ;)

p.s. Всё у яши через жопу :) и gzip не понимают, и keepalive включен всегда превентивно... Интересно, они хотя-бы chunked-ответы нормально обрабатывают? :D

p.p.s. Тоже ничего личного :)

Партнерка metaprofit.net (https://metaprofit.net/)
T.R.O.N
На сайте с 18.05.2004
Offline
314
#7

stealthy,

stealthy:
Для IIS/ISAPI фильтров это просто бедствие.

Все чудесно работает, при условии нормального ISAPI. Проблем никогда не видел.

stealthy:
Подозреваю, что IIS сервера с самописными скриптовыми движками процентов на 40 толком из-за этого вообще не индексируются,

Все мои сайты на самописанных движках. Многие на ActivePerl под IIS. Все ок. Кривизна или внасройках или в самом ISAPI.

stealthy:
PERL ISAPI закрывает поток сразу как только погибает CGI.

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

От воздержания пока никто не умер. Хотя никто и не родился! Prototype.js был написан теми, кто не знает JavaScript, для тех, кто не знает JavaScript (Richard Cornford)
di_max
На сайте с 27.12.2006
Offline
262
#8
jackal:
di_max, stealthy говорит как раз о том, что яша-бот кладет на заголовок connection: close, т.е. когда keep-alive вЫключен, а не включен ;)

Имхо, это дело сервака - КАК и В ЧЕМ (потоке) обработать поступивший запрос... ;)

jackal
На сайте с 27.04.2006
Offline
80
#9
di_max:
Имхо, это дело сервака - КАК и В ЧЕМ (потоке) обработать поступивший запрос...

Если сервак говорит закрыть соединение - надо его слушаться ;)

T.R.O.N
На сайте с 18.05.2004
Offline
314
#10

jackal,

Те скрипты, которые Вы пишите все делают согласно правил???

Если Вашу настройку сервака, так просто поставить в тупик, то это тольок подтверждает правило

"Если строить города, как программеры пишут софт - то первый дятел уничтожит цивилизацию"

123 4

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