Модули Boost и Captcha работают как бы хорошо и одновременно плохо

Главные вкладки

Аватар пользователя NightL NightL 11 октября 2010 в 19:50

Капча не графическая. Страница по аб отдается со сверх скоростью (кеш работает). Если перемещаться по страницам, то так же скорость отзывчивости моментальная. Если обновить страницу используя Ctrl+F5, то страница заново генерируется вместе с капчей. Комментарии при правильном вводе капчи добавляются хорошо

Так это я чего думаю - хорошо работает или плохо или работает только потому, что локалхост... или на самом деле оно не работает, а это всего лишь иллюзия ? И почему при обновлении страницы методом контрл+F5 идет новое генерирование хотя аб ясно показывает, что кеш работает отлично?!? То есть нет разницы есть кеш и работает ли модуль с кешем визуально при нажатии контрл+F5 страница визуально отдается с одной и той же скоростью то есть заново генерируется

Помогите понять того чего не понимаю я Smile

Комментарии

Аватар пользователя otmoroz otmoroz 28 октября 2010 в 10:09

при нажатии ctrl+f5 происходит ПОЛНОЕ обновление страницы, как-будто ты только заходишь на нее, помоему так.
капча, соответственно меняется, а контент идет из кеша. а работает все или нет, можно проверить только на хостинге) или модулем devel

Аватар пользователя NightL NightL 4 ноября 2010 в 23:33

В том и дело, что при нажатии в браузере хроме комбинации контрл + f5 страница идет не из кеша системы а генерируется полностью снова. что как бы не понятно

Аватар пользователя otmoroz otmoroz 8 ноября 2010 в 12:17

по-моему так не должно быть) по-моему еще стандартный кеш должен был бы работать и для авторизованных пользователей)

а в коде noost что-то понятное есть? типа

<?phpif (user see first) {
cash=NULL
cash_set_new
}?>

мало ли?

Аватар пользователя NightL NightL 18 ноября 2010 в 19:34

В общем-то почитав что есть контрл Ф5 это действительно запрос к серверу на получение самой свежей версии страницы и видимо буст при таком запросе игнорируется или это фишка. И работает это только в IE + хром в FF не работает в опере не проверял. В принципе ничего страшного нет так как 99% аудитории сайта ни когда и мысль об этом даже не придет.

Аватар пользователя Dan Dan 18 ноября 2010 в 20:03

При чём тут буст? При Ctrl-f5 загружается _всё_ - картинки, стили, скрипты и т.д., не взирая на то что уже есть в кэше браузера и какие заголовки отдаёт сервер.

Аватар пользователя NightL NightL 20 ноября 2010 в 22:04

Конечно в браузере, но ведь запрос идет на сервер и важно знать как при этом работает кеш (друпала). Поэтому и написал, что в части браузеров комбинация контрл ф5 посылает запрос на генерирование страницы в обход кеша (друпала - boost)

Аватар пользователя NightL NightL 21 ноября 2010 в 14:34

Смотрю, что реально есть в кеше и что отдается при комбинации контрл ф5. Например, если внести изменения(без сбрасывания кеша друпала) зайти на страницу например в IE8 - страница будет из кеша если нажать на контрл ф5 страница будет сгенерирована (появятся изменения) далее чистим кеш IE либо заходим например с хрома - таже страница будет из кеша (без изменений) опять контрл ф5 - страница с изменениями. + если нажимать контрл ф5, то постоянно генерируется новая капча, а если просто обновить то нет при чем комментарии работают при вводе капчи той, что показывается даже если страница из кеша (загадка) А вот для FF контрл ф5 не пашет страница всегда берется из кеша. Вот по этому всему делаю вывод что комбинация контрл ф5 обходит кеш модуля boost для части браузеров

Аватар пользователя NightL NightL 21 ноября 2010 в 23:00

Изменяется все то, что изменилось. Например блоку пишем другое название - сохраняем. Для всех браузеров страница пойдет из кеша (название блока старое) а если в IE и хроме нажать контрл ф5 то увидим новое название

Аватар пользователя Dan Dan 22 ноября 2010 в 11:33

"NightL" wrote:
Для всех браузеров страница пойдет из кеша...

Надо добавить: "из кэша _браузера_".

"NightL" wrote:
...а если в IE и хроме нажать контрл ф5 то увидим новое название

Правильно, потому что при нажатии Ф5 происходит сброс кэша браузера и закачка всех файлов.

Судя по всему, не обновляется время модификации страницы, поэтому браузеры не закачивают новую версию, а отдают её из своего кэша. Для полноты картины надо смотреть заголовки.

Аватар пользователя NightL NightL 22 ноября 2010 в 19:58

Все таки вы настаиваете смотрю на том, что страница всегда идет из кеша drupal (boost), а если что-то не так, то значит виноват кеш браузера Smile

Я особо спорить не хочу просто описал, что имеет место быть.

"Dan" wrote:
Судя по всему, не обновляется время модификации страницы, поэтому браузеры не закачивают новую версию, а отдают её из своего кэша. Для полноты картины надо смотреть заголовки.

Если бы это было так, то тогда я бы видел старую страницу, раз она идет из кеша браузера, а я то вижу новую, которая даже в теории не может попасть в кеш браузера, так как изменения на сервере, скажем, произошли минуту назад при чем, если после того, как я увидел новую страницу путем нажатия «контрл ф5», а затем нажму просто обновить, то уже увижу страницу из кеша буста (другую), а если снова нажму на «контрл ф5», то снова увижу другую страницу уже с последними изменениями (повторно сгенерированную)

Вот так Smile

Аватар пользователя Dan Dan 23 ноября 2010 в 8:06

Так, давайте ещё раз. Сначала.
Есть стабильное состояния страницы: при F5 и при Ctrl-F5 - одно и то же содержимое. Назовём это состояние номер 1.
Вносим некоторые изменения в страницу, например меняем название блока(ов). Получаем состояние 2.
Теперь если мы нажмём F5, то видим состояние 1, если после этого - Ctrl-F5 - состояние 2, если снова F5, то состояние 1. Так?

PS: Смотреть надо на странице _без_ капчи, т.к. для капча для себя кэш частично отключает.

Аватар пользователя NightL NightL 23 ноября 2010 в 15:09

Да именно так! Капча не на всех страницах, только на «полных страницах с контентом» то есть там где есть чего комментировать. В принципе, как уже говорил, страшного в этом ничего нет так как 99% ни когда не нажмут это и нагрузка на сервер не изменится. Даже думаю это некая фича у boost Smile

Аватар пользователя Dan Dan 23 ноября 2010 в 15:21

Как вариант - браузер при F5 и Ctrl-F5 формирует разные заголовки запросов. При простом обновлении тогда отдаётся буст, а при Ctrl-F5 - актуальное состояние.

Аватар пользователя Georgii Georgii 25 ноября 2010 в 18:14

Реакция буста на Ctrl+F5 зависит от его настроек. А конкретно от
Follow RFC2616 14.9.4
Bypass the boost cache when the headers contain a "no-cache" cache-control directive (ctrl-F5 in browser). Disable this to make boost always serve pages from the cache. Good time to disable this is right before your site goes into maintenance mode. IE & this RFC do not work well together, recommend disabling it.

Аватар пользователя NightL NightL 29 ноября 2010 в 16:51

По умолчанию Follow RFC2616 14.9.4 включен. Написано что IE что-то там не дружит с кем-то с чем-то

Спасибо. Потестируем

Аватар пользователя NightL NightL 14 декабря 2010 в 15:29

Что-то не помогает эта настройка Sad

  • Имеем страницу в кеше
  • Вносим изменения в шаблон
  • Заходим снова - страница из кеша
  • жмем ctrl+F5 видим изменения шаблона
  • жмем просто обновить видим страницу из кеша

Sad

Аватар пользователя Georgii Georgii 5 января 2011 в 22:28

Возможно, здесь перепутываются кэши браузера и буста.
Проверьте, какие запросы-ответы идут между браузером и сервером. Это может многое прояснить.
Поглядеть можно в хроме, например, нажав Ctrl+Shift+i и выбрав вкладку Network

Аватар пользователя NightL NightL 6 января 2011 в 14:41

С ответами сервера я совсем немного понимаю какой именно там параметр говорит о наличие кеша или его отсутствии. Я сужу по изменениям на странице и смотрю как страница выглядит в кеше.

В хроме нетворк не нашел зато он есть в Firebug и вот ответы:

Обычное нажатие на ссылку FF

HTTP/1.1 200 OK
Date: Thu, 06 Jan 2011 11:21:30 GMT
Server: Apache/2.0.63-lk.d (Unix) mod_ssl/2.0.63-lk.d OpenSSL/0.9.8g mod_dp20/0.99.2 PHP/5.2.5 mod_python/3.3.1 Python/2.5.1 mod_ruby/1.2.6 Ruby/1.8.6(2007-09-24)
Last-Modified: Thu, 06 Jan 2011 10:39:31 GMT
Etag: "47e944-2a7b-1de47ec0"
Accept-Ranges: bytes
Content-Length: 10875
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Keep-Alive: timeout=10, max=512
Connection: Keep-Alive
Content-Type: text/html; charset=utf-8

ctrl+F5 FF

HTTP/1.1 200 OK
Date: Thu, 06 Jan 2011 11:30:19 GMT
Server: Apache/2.0.63-lk.d (Unix) mod_ssl/2.0.63-lk.d OpenSSL/0.9.8g mod_dp20/0.99.2 PHP/5.2.5 mod_python/3.3.1 Python/2.5.1 mod_ruby/1.2.6 Ruby/1.8.6(2007-09-24)
X-Powered-By: PHP/5.2.5
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Thu, 06 Jan 2011 11:30:19 GMT
Cache-Control: must-revalidate
Connection: close
Content-Length: 10791
Content-Type: text/html; charset=utf-8
Аватар пользователя Georgii Georgii 6 января 2011 в 17:54

В обоих случаях идёт запрос к серверу и ответ 200 с выдачей страницы. Я хотел исключить вариант с 304 и взятием из кэша браузера.

А что при этом написано внизу каждой странички? По идее должно быть что-то вроде
<!-- Page cached by Boost @ 2011-01-06 17:04:48, expires @ 2012-01-05 17:04:48 -->

Интересует - меняется ли время каждый раз, когда Вы нажимаете Ctrl+F5.

Аватар пользователя NightL NightL 6 января 2011 в 19:26

в FF да есть информация о кеше в не зависимости от комбинаций нажатия дата и сама строчка остается неизменной, а вот в хроме ситуация другая при открытии страницы информация присутствует (дата старая), а если нажать Ctrl+F5 то эта строка исчезает вообще.

Например как раз вчера на сервере лег MySQL на минут 10-15 наверное, но так как кеш отдается без участия базы, то в обоих браузерах открывались страницы, которые были в кеше, НО (специально пробовал) если в хроме нажать на открытой странице Ctrl+F5, то страница не будет открыта

Аватар пользователя NightL NightL 6 января 2011 в 20:58

Какая умная мысль! Этого я как раз и не делал. Правда, если не ошибаюсь, эта галочка стоит по умолчанию и тогда сие действие не поможет, но точно я не уверен

Аватар пользователя NightL NightL 6 января 2011 в 21:13

Проверил, действительно эта опция стоит по умолчанию.
Далее сравнил 2 сгенерированных правила и там где галочка не стоит отсутствует 2 строчки а именно

  RewriteCond %{HTTP:Pragma} no-cache [OR]
  RewriteCond %{HTTP:Cache-Control} no-cache [OR]

Проверил у себя - строчки присутствуют