Кэширование в Web, php и symfony
-
Upload
alexander-morozov -
Category
Presentations & Public Speaking
-
view
93 -
download
6
Transcript of Кэширование в Web, php и symfony
![Page 1: Кэширование в Web, php и symfony](https://reader036.fdocument.pub/reader036/viewer/2022081507/58ece8781a28ab045b8b4669/html5/thumbnails/1.jpg)
Кэширование в web, php и symfonyМорозов Александр
![Page 2: Кэширование в Web, php и symfony](https://reader036.fdocument.pub/reader036/viewer/2022081507/58ece8781a28ab045b8b4669/html5/thumbnails/2.jpg)
План семинара● Клиентское кэширование
○ 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
![Page 3: Кэширование в Web, php и symfony](https://reader036.fdocument.pub/reader036/viewer/2022081507/58ece8781a28ab045b8b4669/html5/thumbnails/3.jpg)
Типы кэшированияHTTP Caching (+Browser caching)
Proxy Caching
Reverse proxy
Server-side
![Page 4: Кэширование в Web, php и symfony](https://reader036.fdocument.pub/reader036/viewer/2022081507/58ece8781a28ab045b8b4669/html5/thumbnails/4.jpg)
Варианты кэширования в WEB
browser
browser cache
browser
browser cache
browser
browser cache
proxy cache
php app
reverse proxy cache
![Page 5: Кэширование в Web, php и symfony](https://reader036.fdocument.pub/reader036/viewer/2022081507/58ece8781a28ab045b8b4669/html5/thumbnails/5.jpg)
Клиентское кэшированиеКэш браузера:
Expires
Last-Modified
ETag
Cache-Control
![Page 6: Кэширование в Web, php и symfony](https://reader036.fdocument.pub/reader036/viewer/2022081507/58ece8781a28ab045b8b4669/html5/thumbnails/6.jpg)
Cache-Control:max-age=n - срок годности ответа, сек.
public - любой контент можно сохранять (перекрывается max-age)
private - контент разрешается сохранять только в браузере, запрещено промежуточное кэширование
no-cache - обязательная проверка изменений файла
no-store - полный запрет кэширования
![Page 7: Кэширование в Web, php и symfony](https://reader036.fdocument.pub/reader036/viewer/2022081507/58ece8781a28ab045b8b4669/html5/thumbnails/7.jpg)
Выбор правил Cache-Control
![Page 8: Кэширование в Web, php и symfony](https://reader036.fdocument.pub/reader036/viewer/2022081507/58ece8781a28ab045b8b4669/html5/thumbnails/8.jpg)
Управление HTTP кэшем в symfonyCache-Control:
![Page 9: Кэширование в Web, php и symfony](https://reader036.fdocument.pub/reader036/viewer/2022081507/58ece8781a28ab045b8b4669/html5/thumbnails/9.jpg)
Управление временем действия HTTP кэшачерез Cache-Control Header:
через Expires Header:
![Page 10: Кэширование в Web, php и symfony](https://reader036.fdocument.pub/reader036/viewer/2022081507/58ece8781a28ab045b8b4669/html5/thumbnails/10.jpg)
Другие методы управления HTTP кэшем в Symfony
![Page 11: Кэширование в Web, php и symfony](https://reader036.fdocument.pub/reader036/viewer/2022081507/58ece8781a28ab045b8b4669/html5/thumbnails/11.jpg)
Замечания по HTTP кэшированию
Используем кэширование с GET, HEAD
Не используем с PUT, POST, DELETE
не определены заголовки Cache-Control: no-cache
Cache-Control пустой Cache-Control: private, must-revalidate
есть Cache-Control, не указано
public или private Cache-Control: private
![Page 12: Кэширование в Web, php и symfony](https://reader036.fdocument.pub/reader036/viewer/2022081507/58ece8781a28ab045b8b4669/html5/thumbnails/12.jpg)
Валидация при помощи ETag
![Page 13: Кэширование в Web, php и symfony](https://reader036.fdocument.pub/reader036/viewer/2022081507/58ece8781a28ab045b8b4669/html5/thumbnails/13.jpg)
Валидация при помощи Last-Modified
![Page 14: Кэширование в Web, php и symfony](https://reader036.fdocument.pub/reader036/viewer/2022081507/58ece8781a28ab045b8b4669/html5/thumbnails/14.jpg)
Оптимизация валидации в Symfony
![Page 15: Кэширование в Web, php и symfony](https://reader036.fdocument.pub/reader036/viewer/2022081507/58ece8781a28ab045b8b4669/html5/thumbnails/15.jpg)
Кэширование через ESI
![Page 16: Кэширование в Web, php и symfony](https://reader036.fdocument.pub/reader036/viewer/2022081507/58ece8781a28ab045b8b4669/html5/thumbnails/16.jpg)
Кэширование через обратный проксиSymfony встроенный reverse proxy
![Page 17: Кэширование в Web, php и symfony](https://reader036.fdocument.pub/reader036/viewer/2022081507/58ece8781a28ab045b8b4669/html5/thumbnails/17.jpg)
Symfony + Varnishvarnish
web server
symfonyclient
cache hit
regular hit
![Page 18: Кэширование в Web, php и symfony](https://reader036.fdocument.pub/reader036/viewer/2022081507/58ece8781a28ab045b8b4669/html5/thumbnails/18.jpg)
Еще о клиентском кэшированиикэширование в local/session stoarage
File API
(FileSystem API, File Api, )
![Page 19: Кэширование в Web, php и symfony](https://reader036.fdocument.pub/reader036/viewer/2022081507/58ece8781a28ab045b8b4669/html5/thumbnails/19.jpg)
Кэширование Байт-кодаAlternative PHP Cache (APC)
eAccelerator
PhpExpress
XCache
Zend OPcache
![Page 20: Кэширование в Web, php и symfony](https://reader036.fdocument.pub/reader036/viewer/2022081507/58ece8781a28ab045b8b4669/html5/thumbnails/20.jpg)
Nginx как обратный кэширующий прокси
client
![Page 21: Кэширование в Web, php и symfony](https://reader036.fdocument.pub/reader036/viewer/2022081507/58ece8781a28ab045b8b4669/html5/thumbnails/21.jpg)
Redis (remote dictionary server)
![Page 22: Кэширование в Web, php и symfony](https://reader036.fdocument.pub/reader036/viewer/2022081507/58ece8781a28ab045b8b4669/html5/thumbnails/22.jpg)
Redis + Symfony
![Page 23: Кэширование в Web, php и symfony](https://reader036.fdocument.pub/reader036/viewer/2022081507/58ece8781a28ab045b8b4669/html5/thumbnails/23.jpg)
MemcachedLeaseWeb/LswMemcacheBundle
![Page 24: Кэширование в Web, php и symfony](https://reader036.fdocument.pub/reader036/viewer/2022081507/58ece8781a28ab045b8b4669/html5/thumbnails/24.jpg)
заголовки статичных страниц
заголовки меню категорий
заголовки меню производителей
сущности со слайдами из БД
последняя новость
последние поступления
рекомендованные товары
![Page 25: Кэширование в Web, php и symfony](https://reader036.fdocument.pub/reader036/viewer/2022081507/58ece8781a28ab045b8b4669/html5/thumbnails/25.jpg)
![Page 26: Кэширование в Web, php и symfony](https://reader036.fdocument.pub/reader036/viewer/2022081507/58ece8781a28ab045b8b4669/html5/thumbnails/26.jpg)
![Page 27: Кэширование в Web, php и symfony](https://reader036.fdocument.pub/reader036/viewer/2022081507/58ece8781a28ab045b8b4669/html5/thumbnails/27.jpg)