Проекты веб-страниц становятся инновационными с богатым интерфейсом, который включает дополнительный код, такой как сценарии 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-запроса, размер содержимого и генерацию содержимого. Кэширование и сжатие являются наиболее важной задачей с точки зрения производительности веб-приложения. Мы можем использовать прикрепленный проект, который является бесплатным и открытым исходным кодом для использования в вашем приложении.