Cache em serviços rest com java (jax-rs)
-
Upload
helio-medeiros -
Category
Documents
-
view
387 -
download
1
description
Transcript of Cache em serviços rest com java (jax-rs)
@helmed
CACHEEM SERVIÇOS REST
COM JAX-RS
Friday, April 26, 13
tópicos 5
HTTP����������� ������������������ CAching
1cabeçalhosHTTP����������� ������������������ cache����������� ������������������
2requisições����������� ������������������ condicionais
3
REST����������� ������������������ em����������� ������������������ JAVA����������� ������������������ usando����������� ������������������
jersey4
Cacheando����������� ������������������ JSON
5
Friday, April 26, 13
como assim?precisamos����������� ������������������ aumentar����������� ������������������ a����������� ������������������ performance����������� ������������������ das����������� ������������������ aplicações����������� ������������������ assim����������� ������������������ como����������� ������������������ a����������� ������������������ UX
HTTP����������� ������������������ CAching
1
aumentar o tempo de resposta reduz
requisições aos
servidores
usabilidade fluída
Friday, April 26, 13
bom...talvezmau����������� ������������������ uso����������� ������������������ pode����������� ������������������ dar����������� ������������������ muita����������� ������������������ dor����������� ������������������ de����������� ������������������ cabeça
HTTP����������� ������������������ CAching
1
dados desatualizados
time to market
difícil debugar
Friday, April 26, 13
CACHE HTTPespecificação����������� ������������������ universalmente����������� ������������������ implementada����������� ������������������ pelos����������� ������������������ browsers
HTTP����������� ������������������ CAching
1
Friday, April 26, 13
HTTP����������� ������������������ CAching
1
Browser����������� ������������������ do����������� ������������������ Cliente
Servidor����������� ������������������ Web
request
response(com����������� ������������������ os����������� ������������������ cabeçalhos����������� ������������������ dedicados����������� ������������������ a����������� ������������������ cache)armazena����������� ������������������ para����������� ������������������
posterior����������� ������������������ uso
CACHE����������� ������������������ DO����������� ������������������ BROWSER
PRIMEIRA REQUISIÇÃO
Friday, April 26, 13
HTTP����������� ������������������ CAching
1
PRIMEIRA REQUISIÇÃOpara����������� ������������������ a����������� ������������������ imagem����������� ������������������ ico-mobile.png
Friday, April 26, 13
HTTP����������� ������������������ CAching
1
Browser����������� ������������������ do����������� ������������������ Cliente
Servidor����������� ������������������ Web
usa����������� ������������������ o����������� ������������������ cache����������� ������������������ do����������� ������������������ browser
CACHE����������� ������������������ DO����������� ������������������ BROWSER
REQUISIÇÃO CACHEADAo����������� ������������������ conteúdo����������� ������������������ está����������� ������������������ cacheado����������� ������������������ e����������� ������������������ não����������� ������������������ está����������� ������������������ expirado?
Friday, April 26, 13
HTTP����������� ������������������ CAching
1
REQUISIÇÃO CACHEADApara����������� ������������������ a����������� ������������������ imagem����������� ������������������ ico-mobile.png����������� ������������������ -����������� ������������������ não����������� ������������������ é����������� ������������������ nem����������� ������������������ buscada����������� ������������������ antes����������� ������������������ que����������� ������������������ acabe����������� ������������������ o����������� ������������������ cache
Friday, April 26, 13
como fazer?precisamos����������� ������������������ utilizar����������� ������������������ os����������� ������������������ cabeçalhos����������� ������������������ corretos����������� ������������������ ����������� ������������������ para����������� ������������������ que����������� ������������������ todos����������� ������������������ sigam����������� ������������������ a����������� ������������������ especificação
cache-control
last-modified
expires
ETag
cabeçalhosHTTP����������� ������������������ cache����������� ������������������
2
Friday, April 26, 13
cabeçalhosHTTP����������� ������������������ cache����������� ������������������
2
Expirespossuía����������� ������������������ limitações����������� ������������������ considerando����������� ������������������ redes����������� ������������������ e����������� ������������������ servidores����������� ������������������ intermediários����������� ������������������ de����������� ������������������ cache
Hypertext Transfer Protocol -- HTTP/1.0
Friday, April 26, 13
cabeçalhosHTTP����������� ������������������ cache����������� ������������������
2
Cache-Controlevolução����������� ������������������ para����������� ������������������ detalhamento����������� ������������������ de����������� ������������������ como����������� ������������������ lidar����������� ������������������ com����������� ������������������ cache.
public
privatemax-age
no-cache
no-store
no-transform
s-maxage
Hypertext Transfer Protocol -- HTTP/1.1
Friday, April 26, 13
cabeçalhosHTTP����������� ������������������ cache����������� ������������������
2
Cache-ControlIndica����������� ������������������ que����������� ������������������ a����������� ������������������ resposta����������� ������������������ pode����������� ������������������ ser����������� ������������������ armazenada����������� ������������������ em����������� ������������������ cache����������� ������������������ por����������� ������������������ qualquer����������� ������������������
servidor����������� ������������������ de����������� ������������������ cache����������� ������������������ intermediário����������� ������������������ a����������� ������������������ requisiçãopublic
Hypertext Transfer Protocol -- HTTP/1.1
Friday, April 26, 13
cabeçalhosHTTP����������� ������������������ cache����������� ������������������
2
Cache-Controlindica����������� ������������������ que����������� ������������������ a����������� ������������������ totalidade����������� ������������������ ou����������� ������������������ parte����������� ������������������ da����������� ������������������ mensagem����������� ������������������ de����������� ������������������ resposta����������� ������������������ ���������� ������������������ destinado����������� ������������������ a����������� ������������������
um����������� ������������������ único����������� ������������������ usuário����������� ������������������ e����������� ������������������ não����������� ������������������ deve����������� ������������������ ser����������� ������������������ armazenada����������� ������������������ em����������� ������������������ cache
Hypertext Transfer Protocol -- HTTP/1.1
private
Friday, April 26, 13
cabeçalhosHTTP����������� ������������������ cache����������� ������������������
2
Cache-Controldefine����������� ������������������ a����������� ������������������ expectativa����������� ������������������ de����������� ������������������ vida����������� ������������������ do����������� ������������������ recurso.����������� ������������������ Uma����������� ������������������ resposta����������� ������������������ ���������� ������������������ obsoleto����������� ������������������ se����������� ������������������ sua����������� ������������������ idade����������� ������������������ atual����������� ������������������ ���������� ������������������ maior����������� ������������������ do����������� ������������������ que����������� ������������������ o����������� ������������������ valor����������� ������������������ dado����������� ������������������ (em����������� ������������������ segundos)����������� ������������������ no����������� ������������������ momento����������� ������������������ de����������� ������������������
um����������� ������������������ novo����������� ������������������ pedido����������� ������������������ para����������� ������������������ esse����������� ������������������ recurso.
Hypertext Transfer Protocol -- HTTP/1.1
max-age
Friday, April 26, 13
cabeçalhosHTTP����������� ������������������ cache����������� ������������������
2
Cache-ControlDefine����������� ������������������ a����������� ������������������ expectativa����������� ������������������ de����������� ������������������ vida����������� ������������������ do����������� ������������������ recurso����������� ������������������ em����������� ������������������ servidores����������� ������������������ de����������� ������������������ proxy����������� ������������������ cache.����������� ������������������ Quando����������� ������������������ o����������� ������������������ objeto����������� ������������������ for����������� ������������������
obsoleto����������� ������������������ ao����������� ������������������ browser����������� ������������������ do����������� ������������������ cliente,����������� ������������������ um����������� ������������������ proxy����������� ������������������ cache����������� ������������������ deve����������� ������������������ primeiro����������� ������������������ validá-lo����������� ������������������ contra����������� ������������������ sua����������� ������������������ ����������� ������������������ expectativa����������� ������������������ de����������� ������������������ vida����������� ������������������ para����������� ������������������ o����������� ������������������ objeto,����������� ������������������ antes����������� ������������������ de����������� ������������������ passar����������� ������������������ uma����������� ������������������ requisição����������� ������������������ ao����������� ������������������ origin����������� ������������������ server.
Hypertext Transfer Protocol -- HTTP/1.1
s-maxage
Friday, April 26, 13
cabeçalhosHTTP����������� ������������������ cache����������� ������������������
2
Cache-ControlDefine����������� ������������������ que����������� ������������������ um����������� ������������������ recurso����������� ������������������ não����������� ������������������ seja����������� ������������������ substituído����������� ������������������ em����������� ������������������ servidores����������� ������������������ intermediários.����������� ������������������ Proxy����������� ������������������ caches����������� ������������������ intermediários,����������� ������������������ podem����������� ������������������ utilizar����������� ������������������ estratégias����������� ������������������ de����������� ������������������ substituição,����������� ������������������ como����������� ������������������ em����������� ������������������ casos����������� ������������������ de����������� ������������������ imagens����������� ������������������
em����������� ������������������ que����������� ������������������ pode����������� ������������������ ser����������� ������������������ guardada����������� ������������������ uma����������� ������������������ imagem����������� ������������������ com����������� ������������������ resolução����������� ������������������ menor.
Hypertext Transfer Protocol -- HTTP/1.1
no-transform
Friday, April 26, 13
cabeçalhosHTTP����������� ������������������ cache����������� ������������������
2
Cache-ControlSe����������� ������������������ no-cache����������� ������������������ não����������� ������������������ especificar����������� ������������������ um����������� ������������������ campo,����������� ������������������ então����������� ������������������ os����������� ������������������ servidores����������� ������������������ de����������� ������������������ cache����������� ������������������ não����������� ������������������ devem����������� ������������������ usar����������� ������������������ a����������� ������������������ resposta����������� ������������������ para����������� ������������������ satisfazer����������� ������������������ uma����������� ������������������ nova����������� ������������������ requisição.Se����������� ������������������ a����������� ������������������ no-cache����������� ������������������ especificar����������� ������������������ um����������� ������������������ ou����������� ������������������ mais����������� ������������������ ����������� ������������������ campos,����������� ������������������ então����������� ������������������ um����������� ������������������ cache����������� ������������������ pode����������� ������������������ usar����������� ������������������ a����������� ������������������ resposta����������� ������������������ para����������� ������������������ satisfazer����������� ������������������ um����������� ������������������ pedido����������� ������������������ subsequente,����������� ������������������ sujeito����������� ������������������ a����������� ������������������ quaisquer����������� ������������������
outras����������� ������������������ restrições����������� ������������������ ao����������� ������������������ cache.
Hypertext Transfer Protocol -- HTTP/1.1
no-cache
Friday, April 26, 13
cabeçalhosHTTP����������� ������������������ cache����������� ������������������
2
Cache-Control"Não����������� ������������������ devem����������� ������������������ armazenar"����������� ������������������ .����������� ������������������ Os����������� ������������������ caches����������� ������������������ não����������� ������������������ pode����������� ������������������ intencionalmente����������� ������������������ armazenar����������� ������������������ as����������� ������������������
informações����������� ������������������ de����������� ������������������ armazenamento����������� ������������������ não-volátil,����������� ������������������ e����������� ������������������ deve����������� ������������������ fazer����������� ������������������ uma����������� ������������������ tentativa����������� ������������������ de����������� ������������������ melhor����������� ������������������ esforço����������� ������������������ para����������� ������������������ remover����������� ������������������ as����������� ������������������ informações����������� ������������������ de����������� ������������������ armazenamento����������� ������������������ volátil����������� ������������������ com����������� ������������������ a����������� ������������������ maior����������� ������������������
brevidade����������� ������������������ possível����������� ������������������ após����������� ������������������ encaminhá-lo.
Hypertext Transfer Protocol -- HTTP/1.1
no-store
Friday, April 26, 13
houve alteração?precisamos����������� ������������������ reduzir����������� ������������������ o����������� ������������������ escopo����������� ������������������ da����������� ������������������ requisição����������� ������������������ para����������� ������������������ conferência����������� ������������������ para����������� ������������������ manter����������� ������������������ a����������� ������������������ conferência����������� ������������������ constante
last-modified
ETag
requisições����������� ������������������ condicionais
3
Friday, April 26, 13
requisições����������� ������������������ condicionais
3
baseado em tempogarante����������� ������������������ que����������� ������������������ requisições����������� ������������������ só����������� ������������������ serão����������� ������������������ enviadas����������� ������������������ quando����������� ������������������ os����������� ������������������ dados����������� ������������������ tiverem����������� ������������������ sido����������� ������������������ alterados
last-modified
If-Modified-Since
Friday, April 26, 13
requisições����������� ������������������ condicionais
3
Browser����������� ������������������ do����������� ������������������ Cliente
Servidor����������� ������������������ Web
Servidor����������� ������������������ Cache
request request
responseresponse(com����������� ������������������ os����������� ������������������ cabeçalhos����������� ������������������ dedicados����������� ������������������ a����������� ������������������ cache)armazena����������� ������������������ para����������� ������������������
posterior����������� ������������������ uso
CACHE����������� ������������������ DO����������� ������������������ BROWSER
CACHE����������� ������������������ DO����������� ������������������ servidor
Cache-Control����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ max-age=20,����������� ������������������ s-maxage=20last-modified����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ Thu,����������� ������������������ 18����������� ������������������ Apr����������� ������������������ 2013����������� ������������������ 09:20:14����������� ������������������ GMT
If-Modified-Since����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ Thu,����������� ������������������ 18����������� ������������������ Apr����������� ������������������ 2013����������� ������������������ 09:20:14����������� ������������������ GMT
Friday, April 26, 13
requisições����������� ������������������ condicionais
3
baseado em conteúdotambém����������� ������������������ garante����������� ������������������ a����������� ������������������ conferência����������� ������������������ baseada����������� ������������������ em����������� ������������������ uma����������� ������������������ HASHMD5
ETag
If-None-Match
Friday, April 26, 13
requisições����������� ������������������ condicionais
3
Browser����������� ������������������ do����������� ������������������ Cliente
Servidor����������� ������������������ Web
Servidor����������� ������������������ Cache
request request
responseresponse(com����������� ������������������ os����������� ������������������ cabeçalhos����������� ������������������ dedicados����������� ������������������ a����������� ������������������ cache)armazena����������� ������������������ para����������� ������������������
posterior����������� ������������������ uso
CACHE����������� ������������������ DO����������� ������������������ BROWSER
CACHE����������� ������������������ DO����������� ������������������ servidor
Cache-Control����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ max-age=20,����������� ������������������ s-maxage=20ETag����������� ������������������ ����������� ������������������ ����������� ������������������ 15f0fff99ed5aaa44asd79as7dsa8sda
If-None-Match����������� ������������������ ����������� ������������������ ����������� ������������������ 15f0fff99ed5aaa44asd79as7dsa8sda
Friday, April 26, 13
CONFIGURANDO WEB.xml
REST����������� ������������������ em����������� ������������������ JAVA����������� ������������������ usando����������� ������������������
jersey4
Friday, April 26, 13
REST����������� ������������������ em����������� ������������������ JAVA����������� ������������������ usando����������� ������������������
jersey4
DEFININDO OS PATHS
Friday, April 26, 13
DEFININDO CABEÇALHOS
Cacheando����������� ������������������ JSON
5
Friday, April 26, 13
Cacheando����������� ������������������ JSON
5
DEFININDO CABEÇALHOS
Friday, April 26, 13
Cacheando����������� ������������������ JSON
5
DEFININDO CABEÇALHOS
Friday, April 26, 13