При использовании серверного кэширования кэш находится на стороне сервера, на котором работает веб-приложение, и кэширование производится на уровне запросов к БД, фрагментов динамических веб-страниц. Такое кэширование позволяет снизить нагрузку на сервер и снизить задержки при выдаче контента. Сложность кэширования динамических объектов заключается в том, что необходимость в нем не всегда очевидна, поскольку если стоимость кэширования объекта выше стоимости генерации объекта, то в кэширование при работе системы не рассматривается.
Одним из способов увеличение скорости генерации элементов веб-приложения является статическое кэширование. Результаты анализа загрузки страниц со статическим кэшированием страниц представлен на рисунке
При использовании статического кэширования, в случае повторного обращении к странице запросы к базе данных не осуществляются, и не задействуется интерпретатор . Обусловить необходимость использования статического кэширования можно из расчета, что удовлетворяется условие R< t1 >= tu , где t1- время жизни кэшированной страницы, tu- интенсивность обновления этой страницы, R – интенсивность запроса юкэшируемой страницы.
Кэширование страниц на стороне клиента.
Современные браузеры (IE7+, Firefox 3+, Chrome) способны сохранять страницы посещаемых сайтов, и оперировать загрузкой на основании дат изменения страниц. Получая информацию о дате изменения страницы из технических заголовков (формируемых веб-сервером) браузер принимает решения о новой загрузке страницы или представления сохраненной версии.
Предварительная генерация страниц на стороне веб-сервера.
Дополнительным методом увеличения скорости загрузки страниц является предварительная генерация страниц. Этот метод рекомендуют использовать при статическом кэшировании и кэширование в базу данных. Для реализации этого метода необходимо генерировать запрос ко всем страницам веб-приложения, что может стать причиной роста нагрузки на аппаратные ресурсы сервера.