Кэширование в web, php и symfony
Post on 11-Apr-2017
93 Views
Preview:
TRANSCRIPT
Кэширование в web, php и symfonyМорозов Александр
План семинара● Клиентское кэширование
○ Cache-Control
○ Выбор правил Cache-Control
○ Управление HTTP кэшем в Symfony
○ Управление временем действия HTTP кэша в Symfony
○ Замечания по HTTP кэшированию
○ Валидация в Symfony при помощи ETag, Last-Modified
○ Отпитимизация валидации в Symfony
● Кэширование с использованием ESI (Edge Side Includes)
● Кэширование через обратный прокси Symfony
● Varnish, Symfony + Varnish
● PHP bytecode cache
● NGnix как кэширующий прокси
● Symfony + Redis, Doctrine Query and Results Caching
● Memcached
Типы кэшированияHTTP Caching (+Browser caching)
Proxy Caching
Reverse proxy
Server-side
Варианты кэширования в WEB
browser
browser cache
browser
browser cache
browser
browser cache
proxy cache
php app
reverse proxy cache
Клиентское кэшированиеКэш браузера:
Expires
Last-Modified
ETag
Cache-Control
Cache-Control:max-age=n - срок годности ответа, сек.
public - любой контент можно сохранять (перекрывается max-age)
private - контент разрешается сохранять только в браузере, запрещено промежуточное кэширование
no-cache - обязательная проверка изменений файла
no-store - полный запрет кэширования
Выбор правил Cache-Control
Управление HTTP кэшем в symfonyCache-Control:
Управление временем действия HTTP кэшачерез Cache-Control Header:
через Expires Header:
Другие методы управления HTTP кэшем в Symfony
Замечания по HTTP кэшированию
Используем кэширование с GET, HEAD
Не используем с PUT, POST, DELETE
не определены заголовки Cache-Control: no-cache
Cache-Control пустой Cache-Control: private, must-revalidate
есть Cache-Control, не указано
public или private Cache-Control: private
Валидация при помощи ETag
Валидация при помощи Last-Modified
Оптимизация валидации в Symfony
Кэширование через ESI
Кэширование через обратный проксиSymfony встроенный reverse proxy
Symfony + Varnishvarnish
web server
symfonyclient
cache hit
regular hit
Еще о клиентском кэшированиикэширование в local/session stoarage
File API
(FileSystem API, File Api, )
Кэширование Байт-кодаAlternative PHP Cache (APC)
eAccelerator
PhpExpress
XCache
Zend OPcache
Nginx как обратный кэширующий прокси
client
Redis (remote dictionary server)
Redis + Symfony
MemcachedLeaseWeb/LswMemcacheBundle
заголовки статичных страниц
заголовки меню категорий
заголовки меню производителей
сущности со слайдами из БД
последняя новость
последние поступления
рекомендованные товары
top related