Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сомнительный способ привлечения роботов
 
 автор: Владимир55   (03.02.2012 в 12:28)   письмо автору
 
 

Многие вэбмастера уже давно практикуют для привлечения роботов ежедневное обновление всего содержимого сайта. Это делается по таймеру средствами РНР, а именно: поочередно каждая страница считывается и затем записывается заново. При этом файл страницы получает новое время обновления, поскольку записан как бы заново.

Эффект от этого есть и многократно подтвержден на практике, но сути его я никогда не понимал и не понимаю сейчас: каким образом робот может узнать дату, когда файл закачали на сервер?

Мне кажется, что это возможно только на уровне серверных программ, а разве такое возможно при обращении по ВЭБ?

  Ответить  
 
 автор: cheops   (03.02.2012 в 12:36)   письмо автору
 
   для: Владимир55   (03.02.2012 в 12:28)
 

Может речь идет о статичных HTML-страницах, дата обновления которых может отправляться с HTTP-заголовками? Но вообще я так понимаю, не просто страница переписывается, чуть-чуть должно меняться её содержимое. Робот не дурак, он увидит, что содержимое не менялось, уж хэш содрежимого-то он считает (это даже самый примитивный робот делает), иначе он будет кругами по сайту ходить.

  Ответить  
 
 автор: Владимир55   (03.02.2012 в 13:03)   письмо автору
 
   для: cheops   (03.02.2012 в 12:36)
 

Да, речь идет о статичных HTML-страницах.

не просто страница переписывается, чуть-чуть должно меняться её содержимое.

Это важно прежде всего для торговцев ссылками. На странице могут появляться новые ссылки или исчезать неоплаченные акцептором, и потому надо приучить робота смотреть ее каждый день, хотя в подавляющем числе случаев страница остается неизменной.
А обновляют её так:

<?php
    $buff 
file_get_contents ($name_file);

    
$file fopen ($name_file"w") ;      
    
fputs ($file$buff) ;                
    
fclose ($file) ; 


Разве робот может уловить такое обновление?

  Ответить  
 
 автор: cheops   (03.02.2012 в 13:09)   письмо автору
 
   для: Владимир55   (03.02.2012 в 13:03)
 

Как сервер настроен, если он отправляет дату изменения документа, ориентируясь на дату HTML-файла, то вполне - роботу просто будет заголовок соответствующий посылаться.

  Ответить  
 
 автор: Владимир55   (04.02.2012 в 10:33)   письмо автору
 
   для: cheops   (03.02.2012 в 13:09)
 

Если так, то в основе лежит правильная работа с 'HTTP_IF_MODIFIED_SINCE' (о чем в описавшей этот метод статье даже не упоминается).

Интересно, а много ли CMS обрабытывают дату изменения файла и дату кеширования?

  Ответить  
 
 автор: cheops   (04.02.2012 в 12:17)   письмо автору
 
   для: Владимир55   (04.02.2012 в 10:33)
 

У многих в этом надобности нет, так как системы динамические и дату обновления шлют раную текущей.

  Ответить  
 
 автор: Владимир55   (04.02.2012 в 15:50)   письмо автору
 
   для: cheops   (04.02.2012 в 12:17)
 

Да, я тоже видел такие решения.

А вот что остается непонятным.

Если робот уже видел этот контент, то мой скрипт посылает ему 304 Not Modified. А если не видел, то роботу посылается заголовок с Last-Modified: и затем выводится контент.

А кто отдает роботу "200 ОК" ?

Это посылает сервер автоматически без участия моего скрипта переде выдачей контекста?

  Ответить  
 
 автор: Commander   (03.02.2012 в 17:27)   письмо автору
 
   для: Владимир55   (03.02.2012 в 12:28)
 

Сравните страницу вчера и страницу сегодня. Если есть разница - то и робот ее получит, если нет - он не увидит обновления. Ведь робот - это браузер.

P.S. Прочитал пост Cheops'a. Действительно, упустил из виду заголовки сервера. Послать их нетрудно даже из джумловского мамбота. В Вашем коде достаточно написать одну строку кода перед третьей строкой, чтобы клиент получил заголовок: данная страница была изменена секунду назад.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования