admin18.03.2015 01:05

Ускорение сайта ч.1

Давно пользуюсь замечатльным сервисом от Google Insights

Пользоваться сервисом очень легко, переходим по ссылке выше, вводим адрес проверяемого сайта жмем "Анализировать" и ждем результат.

Google Inslight

Получаем ответ вида

Google Inslight

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

В этой же статье мы рассмотрим кеширование кэширования через файл .htaccess

Он позволяет контролировать и изменять заголовки HTTP-запросов и HTTP-ответов. Вся его суть сводится к простой работе, если браузер уже один раз загрузил картнку css фаил и т.д. то при следующем открытии этого сайта брать уже фаилы не с сервера а с локального компьютера, конечно если время кеширования (хранения) фаила не закончилось. Если время вышло то браузер клиента сделает снова запрос и загрузит фаил.

Использовать его достачно просто. Ниже приведу один из способов.

<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$"> 
Header set Cache-Control "max-age=2592000"
</FilesMatch>

Для файлов с указанными расширениями в конструкции FilesMatch устанавливается отдаваемый сервером заголовок Cache-Control и переменная max-age, в которой указывается время сохранения файлов в кеше в секундах. Добавьте или удалите нужные расширения фаилов.
Так же есть возможность запретить кеширование например для фаилов с расширением PHP

<FilesMatch ".(pl|php|cgi|spl|scgi|fcgi)$"> 
Header unset Cache-Control
</FilesMatch>

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

<IfModule mod_expires.c> 
ExpiresActive On
ExpiresDefault "access plus 1 month"
ExpiresByType image/gif "access plus 2 months"
ExpiresByType image/jpeg "access plus 2 months"
</IfModule>

Как вы могли заметить синтаксис не много отличается от предыдущего варианта.

В этом примере мы включаем модуль, устанавливаем кэширование по умолчанию на 1 месяц, а далее назначаем для файлов с расширением gif и jpg врема хранения в кэше plus 2 months. Время можно указать в годах, месяцах, неделях, днях, часах, минутах, секундах. В том числе можно использовать вариант вида:

ExpiresByType text/html "access plus 1 month 15 days 2 hours" 
ExpiresByType image/gif "modification plus 5 hours 3 minutes"