Ускорение сайта. Настройка кэширования и сжатия Gzip

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

Настройка кэширования

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

Работает эта система через специальные заголовки Cache-Control и Expires. Через эти заголовки и их атрибуты, сервер, на котором размещена информация, указывает браузеру клиента время жизни кэша, на протяжении которого данные не нужно повторно запрашивать с сервера.

Но есть вероятность, что страница была изменена с момента ее кэширования, поэтому браузеру нужно проверять актуальность кэша. Для этого он должен сопоставить кэшированную версию документа с текущей версией на сервере. Реализуется это через заголовки ETag и Last-Modified. Они присваивают файлам уникальные идентификаторы, которые меняются вместе с изменением файла. Если документ не изменился, сервер отвечает статус-кодом 304 (Not Modified), тем самым давая браузеру понять, что ресурс не изменился и его не нужно скачивать заново.

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

В WordPress кэширование можно организовать с помощью специальных плагинов, наиболее популярными из которых являются WP Super Cache и W3 Total Cache. Я рекомендую второй — он имеет более гибкие настройки и кучу дополнительного функционала.

Сжатие Gzip

Cуть данной технологии заключается в том, что текстовые данные перед отправкой пользователю сжимаются в zip-архив. Это позволяет уменьшить их объем примерно в 5 раз и увеличить общую скорость загрузки страниц на десятки, а иногда и на сотни процентов.

Получение сжатого контента между браузером клиента и сервером тоже осуществляется через заголовки. Браузер, давая понять, какие типы сжатия он поддерживает, отправляет серверу заголовок AcceptEncoding:

Accept-Encoding: gzip, deflate

Сервер, видя этот заголовок, сжимает данные одним из указанных методов, и отвечает клиенту заголовком Content-Encoding с указанием способа сжатия содержимого:

Content-Encoding: gzip

Gzip-сжатие практически не вызывает нагрузки на браузер клиента, так как распаковка данных происходит очень быстро, практически мгновенно. Нагрузка же на сервер возможна только в случае динамического сжатия в реальном времени. Поэтому на высоконагруженных проектах лучше использовать статическое сжатие.

В WordPress’е включить сжатие можно прямо в плагине W3 Total Cache.

Похожее

Оставить комментарий

Ваш e-mail не будет опубликован.

Поиск

Новости в картинках