Кэширование в web, php и symfony

Post on 11-Apr-2017

93 Views

Category:

Presentations & Public Speaking

6 Downloads

Preview:

Click to see full reader

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