Методы запрета кеширования браузером динамического контента

Поле заголовка expires

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

Если поле »expires« содержит дату, прошедшую, по отношению к текущей, то при следующем обращении к ресурсу браузер будет вынужден снова обратиться к серверу. Это произойдет вследствие того, что либо документ не будет занесен в кэш - как уже устаревший, либо при обращении к кэшу браузер определит, что документ уже устарел. Следующий листинг на php демонстрирует использование заголовка expires:

header ("expires: mon, 26 jul 1997 05:00:00 gmt");

Поле заголовка last-modified

Значением данного заголовка является дата последнего обновления ресурса. Большинство современных браузеров используют следующий алгоритм, если ресурс уже находится в локальном кэше:

запрашивает с сервера дату последнего обновления ресурса сравнивает полученную дату и дату ресурса в локальном кэше если ресурс на сервере новее ресурса в кэше - запрашивается ресурс с сервера.
Если ресурс, расположенный на сервере, содержит в данном поле текущую дату, то браузер будет каждый раз запрашивать ресурс с сервера, а не из локального кэша. Следующий листинг демонстрирует использование поля заголовка last-modified:

header ("last-modified: " . gmdate("d, d m y h:i:s") . " gmt");

Поля заголовка cache-control и pragma

И, наконец, поля заголовка, непосредственно отвечающие за кэширование ресурса. Поле «pragma» было определено в стандарте rfc 1945, описывающим протокол http 1.0. Данное поле считается устаревшим, но в некоторых случаях приходится использовать именно его. В частности некоторые proxy-сервера неправильно обрабатывают запросы к постоянно изменяющимся ресурсам, если вместе с ресурсом не передается данное поле заголовка.

Второе поле определено в стандарте rfc 2068, который описывает протокол http 1.1. Данное поле заголовка позволяет запретить кэширование, и каждый раз запрашивать ресурс с сервера. Следующий листинг демонстрирует использование полей заголовка cache-control и pragma для запрета кэширования:

header("cache-control: no-cache, must-revalidate"); header("pragma: no-cache");

HTML Color Picker - получаем код цветной области экрана.

Нередко возникает необходимость получить HTML или RGB код какого либо цветного участка на экране. Обычно это бывает достаточно хлопотно. Делать скриншот экране и загружать его в фотошоп - задача не для слабонервных.

Поискав в ВЕБе, я нашел небольшую, но удобную утилитку под windows, которая существенно облегчает жизнь веб-дизайнеру:
Quick HTML Color Picker.

Программа не требует установки и при запуске выводит на экран свое окно, в котором есть только самые необходимые для работы инструменты: клавиши Pick Color и Copy, а также поля с образцом цвета и его значениями в указанных форматах.

При нажатии на кнопку Pick Color вместо основного окна программы, появляется небольшое окошко с курсором-пипеткой:

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

После того, как курсор остановится над нужным цветом, следует нажать левую кнопку мыши. Значения цвета появятся в соответствующих полях основного окна программы. Теперь достаточно нажать кнопку Copy, чтобы скопировать код цвета в формате HTML. Если же отметить галочкой опцию Copy automatically, то после выбора цвета пипеткой его код автоматически скопируется в буфер обмена.

И еще одна полезная возможность реализована в программе. Клик мышью по полю с образцом цвета приведет к открытию стандартного диалогового окна выбора цвета.


Небольшая памятка про тег <img> и атрибут align

Тег <img> ведет себя совершенно некорректно при указании аттрибута align: если center - он виснет в центре, тут вроде все правильно. А если указать "left" или "right" - начинает чудить, а именно - нарушать вложенность тегов. Даже если он вложен в параграф, и аттрибут align указан для того чтобы текст красиво обтекал картинку, есть нюанс: если картинка по высоте больше этого текста, то следующий параграф, как строчный тег будет обтекать эту же картинку. И плевал IE на вложенность тегов и понятие блочности и строчности. Помогает следующее: добавляем в тег аттрибут style="display:inline".

Защита PHPBB от спам-ботов путем изменения каптчи

Хочу рассказать о самом простом способе, осложняющем жизнь спамерам и программам ботов, использующим автоматические регистрации на форумах под управлением PHPBB версий 2.x. Естественно, что такой тип защиты срабатывает на тех форумах, где включено визуальное подтверждение, так называемая CAPTCHA.

Многие знают, что стандартная защита от автоматических регистраций на PHPBB 2 легко обходится с помощью использования OCR технологий, используемых программами автопостинга. Попробуем сделать каптчу нестандартной, что может решить проблему, т.к. спамерам проще пройтись по нескольким тысячам незащищенных форумов, чем модифицировать программу, чтобы проспамить несколько нестандартных сайтов.

Находим от корня форума файл /includes/usercp_confirm.php и находим в нем строку $img_width = 0; Если исправить значение $img_width, например на 1 или 2 или -1 или -2, то вместо стандартного изображения получаются вот такие замечательное уродство:


$img_width = 1


$img_width = -1


$img_width = 2


$img_width = -2

которые, надо понимать, еще вполне распознаваемы человеком, но усложняют OCR процесс для ботов. Конечно, значения 2 и -2 это слишком, обычно хватает 1 или -1.

Еще более гибкий способ, заменить строку $img_width = 0; на что-то такое:
$img_width_arr = array(-2, -1, 1, 2);
$img_width = $img_width_arr[rand(0, 3)];
или такое: $img_width = rand(0, 1) == 0 ? -1 : 1;

Данный трюк далек от идеала, но обычно помогает. Предпочтительным же представляется способ, удачно применяемый на rapidshare, когда несколько заготовок captcha с разными экзотическими фонтами и разными подложками выдается пользователю случайным образом


Теги для бота Google Adsense

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

<!– google_ad_section_start –>
…важное содержимое…
<!– google_ad_section_end –>

На странице можно использовать многократно .


Page: [1] [2] [3] [4] [5]
термопанели фасадные новая страница. | фасадная клинкерная плитка. | Наша компания представляет копирайтинг за 1004 - заходите | продать сайт, купить сайт | Среди мастеров по ремонту квартир николай лучший ремонтник. | ультразвуковой дефектоскоп скаруч
 
 

статистика сайта
Page created in 0,38783 seconds Powered by LastoBlog