Статьи

Повышение производительности за счет кэширования и сжатия

Проекты веб-страниц становятся инновационными с богатым интерфейсом, который включает дополнительный код, такой как сценарии Java, CSS, изображения и т. Д. Большая часть времени отклика конечного пользователя связана с загрузкой этих компонентов. Оптимизация числа запросов http и размера ответа основные параметры для повышения производительности веб-приложения.

В этой статье рассказывается о фильтрах кэширования и фильтрах сжатия, которые подходят для использования с любым веб-приложением для оптимизации количества запросов и размера ответа.

Сжатие содержимого Gzip Servlet Filter

Сжатие HTTP — это способ сжатия содержимого, передаваемого с серверов в браузеры, которые уменьшают размер ответа http. Этот основанный на стандартах метод доставки сжатого контента встроен в HTTP / 1.1, и все современные веб-браузеры поддерживают протокол HTTP / 1.1, то есть они могут автоматически декодировать сжатые файлы в браузере на стороне клиента. Чем меньше размер вашей информации, тем быстрее она может быть отправлена. Поэтому, если вы сжимаете контент вашего веб-приложения, он будет отображаться на экране пользователя быстрее.

Исходный код: Ссылка для скачивания Исходный код фильтра OpenWebOptimizer для сервлета Gzip с примером кода и документом об использовании.

Gzip — самый популярный и эффективный метод сжатия в настоящее время. Он был разработан проектом GNU и стандартизирован RFC 1952. Gzipping обычно уменьшает размер ответа примерно на 70%.

Для добавления фильтра Gzip просто добавьте приведенный ниже код в web.xml, включая вложенные фильтры Gzip

1
2
3
4
5
6
7
8
<filter>
<filter-name>GZIPFilter</filter-name>
<filter-class>com.opcat.gzip.GZIPFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>GZIPFilter</filter-name>
<url-pattern>*</url-pattern>
</filter-mapping>]]>

Кэширование сервлетов HTTP:

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

Исходный код: ссылка для скачивания Исходный код фильтра OpenWebOptimizer для Caching Servlet с примером кода и документом об использовании.

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

Для добавления фильтра кэширования просто добавьте приведенный ниже код в web.xml

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
<filter>
<filter-name>jsCache</filter-name>
<filter-class>com.opcat.cache.CacheFilter</filter-class>
<init-param>
<param-name>private</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>expirationTime</param-name>
<!-- Change this to add the expiry time for re-validating the files -->
<param-value>0</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>jsCache</filter-name>
<url-pattern>*</url-pattern>
</filter-mapping>

Резюме

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