SlideShare uma empresa Scribd logo
Caching
https://github.com/marceloserpa
https://twitter.com/_marceloserpa
https://www.linkedin.com/in/marceloserpa
Marcelo Serpa
Desenvolvedor de Software
Como é a internet?
Custo de uma chamada HTTP
O que é cache?
- Cria uma cópia local do resultado de uma chamada HTTP
- Reduz custo de processamento e round-trips necessário para buscar um
recurso
- Ideal para operações idempotentes
Como funciona?
Via cabeçalho HTTP
- Expires
- Cache-control
Expires
O servidor define uma data de validade para a resposta.
$ curl -X GET -I localhost:8080/product/v1/products/1
HTTP/1.1 200
Expires: Seg, 21 jan 2019 23:56:36 BRST
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Mon, 22 Jan 2018 01:56:36 GMT
Cache-control
É uma evolução do Expires possui mais controle sobre o ciclo de vida do cache
$ curl -X GET -I localhost:8080/product/v1/products/1
HTTP/1.1 200
Cache-Control: max-age=604800, private
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Mon, 22 Jan 2018 02:26:18 GMT
Validação
Existem duas formas de revalidar uma resposta: ETAGs e Last-Modified
$ curl -X GET -I localhost:8080/product/v1/products/1
HTTP/1.1 200
Last-Modified: Mon, 09 Jan 2017 10:30:20 GMT
ETag: "fa858e16-461b-4ff3-bf2e-74b4c4557b36"
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Mon, 22 Jan 2018 02:32:29 GMT
Política de
armazenamento com
Cache-Control
Tipos de cache
- Browser
- Proxy
- Gateway
- Aplicação
Tipos de cache - Browser
- Browser implementa a especificação de cache HTTP
- Cliente pode limpar o cache
- Cache referente apenas à um usuário
- chrome://view-http-cache
Tipos de cache - Proxy
- Cache compartilhado
- Cache referente apenas à vários usuários
- Evitar usar com informações sensíveis
- Sem controle
Tipos de cache - Gateway
- Responsável pelo cache fica na frente da aplicação
- Pode fazer balanceamento de carga
- Mais fácil de controlar
- Pode-se usar NGINX ou Apache para fazer
proxy-reverso
Tipos de cache - Aplicação
- Aplicação controla
- In-memory: Redis e Memcached
- Cache em arquivo
- Memoization
Como poderíamos usar cache
eficientemente para uma API REST
usada nessa tela?
Obrigado!

Mais conteúdo relacionado

Mais procurados

Alta perfomance de aplicações PHP com Nginx
Alta perfomance de aplicações PHP com NginxAlta perfomance de aplicações PHP com Nginx
Alta perfomance de aplicações PHP com Nginx
Thiago Paes
 
Alta Performance de Aplicações Web em PHP - Nginx
Alta Performance de Aplicações Web em PHP - NginxAlta Performance de Aplicações Web em PHP - Nginx
Alta Performance de Aplicações Web em PHP - Nginx
Thiago Paes
 
Automatizar backup no pf sense [dica]
Automatizar backup no pf sense [dica]Automatizar backup no pf sense [dica]
Automatizar backup no pf sense [dica]
João Augusto
 
Alta Performance de Aplicações PHP com Nginx
Alta Performance de Aplicações PHP com NginxAlta Performance de Aplicações PHP com Nginx
Alta Performance de Aplicações PHP com Nginx
Thiago Paes
 
Zabbix Conference LatAm 2016 - Andre Deo - SNMP and Zabbix
Zabbix Conference LatAm 2016 - Andre Deo - SNMP and ZabbixZabbix Conference LatAm 2016 - Andre Deo - SNMP and Zabbix
Zabbix Conference LatAm 2016 - Andre Deo - SNMP and Zabbix
Zabbix
 
Slides nginx
Slides nginxSlides nginx
Slides nginx
Rafael Capucho
 
Node slide
Node slideNode slide
T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)
Carlos Santos
 
Cache e Performance (in portuguese)
Cache e Performance (in portuguese)Cache e Performance (in portuguese)
Cache e Performance (in portuguese)
Bruno Pedro
 
Talk at QConSP
Talk at QConSPTalk at QConSP
Talk at QConSP
Victor Pantoja
 
UserParameter vs Zabbix Sender - 1º ZABBIX MEETUP DO INTERIOR-SP
UserParameter vs Zabbix Sender - 1º ZABBIX MEETUP DO INTERIOR-SPUserParameter vs Zabbix Sender - 1º ZABBIX MEETUP DO INTERIOR-SP
UserParameter vs Zabbix Sender - 1º ZABBIX MEETUP DO INTERIOR-SP
André Déo
 
NGiNX, o motor da sua aplicação web
NGiNX, o motor da sua aplicação webNGiNX, o motor da sua aplicação web
NGiNX, o motor da sua aplicação web
ernaniaz
 
Copa do mundo no brasil interagindo com os torcedores em tempo real
Copa do mundo no brasil   interagindo com os torcedores em tempo realCopa do mundo no brasil   interagindo com os torcedores em tempo real
Copa do mundo no brasil interagindo com os torcedores em tempo real
Amazon Web Services LATAM
 
Implementação de Servidor Linux Ubuntu Server
Implementação de Servidor Linux Ubuntu ServerImplementação de Servidor Linux Ubuntu Server
Implementação de Servidor Linux Ubuntu Server
Tiago Bezerra Dos Santos
 
03 estrategia-ddos
03 estrategia-ddos03 estrategia-ddos
03 estrategia-ddos
Pavel Odintsov
 
Kerberos e OpenLDAP: Ambiente SSO OpenSource
Kerberos e OpenLDAP: Ambiente SSO OpenSourceKerberos e OpenLDAP: Ambiente SSO OpenSource
Kerberos e OpenLDAP: Ambiente SSO OpenSource
Marcelo Fleury
 
De A a Zabbix Devry Metrocamp
De A a Zabbix Devry MetrocampDe A a Zabbix Devry Metrocamp
De A a Zabbix Devry Metrocamp
André Déo
 
Memcached
MemcachedMemcached
Descobrindo o Nginx - Um servidor web de alta performance
Descobrindo o Nginx - Um servidor web de alta performanceDescobrindo o Nginx - Um servidor web de alta performance
Descobrindo o Nginx - Um servidor web de alta performance
Gustavo Ciello
 

Mais procurados (19)

Alta perfomance de aplicações PHP com Nginx
Alta perfomance de aplicações PHP com NginxAlta perfomance de aplicações PHP com Nginx
Alta perfomance de aplicações PHP com Nginx
 
Alta Performance de Aplicações Web em PHP - Nginx
Alta Performance de Aplicações Web em PHP - NginxAlta Performance de Aplicações Web em PHP - Nginx
Alta Performance de Aplicações Web em PHP - Nginx
 
Automatizar backup no pf sense [dica]
Automatizar backup no pf sense [dica]Automatizar backup no pf sense [dica]
Automatizar backup no pf sense [dica]
 
Alta Performance de Aplicações PHP com Nginx
Alta Performance de Aplicações PHP com NginxAlta Performance de Aplicações PHP com Nginx
Alta Performance de Aplicações PHP com Nginx
 
Zabbix Conference LatAm 2016 - Andre Deo - SNMP and Zabbix
Zabbix Conference LatAm 2016 - Andre Deo - SNMP and ZabbixZabbix Conference LatAm 2016 - Andre Deo - SNMP and Zabbix
Zabbix Conference LatAm 2016 - Andre Deo - SNMP and Zabbix
 
Slides nginx
Slides nginxSlides nginx
Slides nginx
 
Node slide
Node slideNode slide
Node slide
 
T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)
 
Cache e Performance (in portuguese)
Cache e Performance (in portuguese)Cache e Performance (in portuguese)
Cache e Performance (in portuguese)
 
Talk at QConSP
Talk at QConSPTalk at QConSP
Talk at QConSP
 
UserParameter vs Zabbix Sender - 1º ZABBIX MEETUP DO INTERIOR-SP
UserParameter vs Zabbix Sender - 1º ZABBIX MEETUP DO INTERIOR-SPUserParameter vs Zabbix Sender - 1º ZABBIX MEETUP DO INTERIOR-SP
UserParameter vs Zabbix Sender - 1º ZABBIX MEETUP DO INTERIOR-SP
 
NGiNX, o motor da sua aplicação web
NGiNX, o motor da sua aplicação webNGiNX, o motor da sua aplicação web
NGiNX, o motor da sua aplicação web
 
Copa do mundo no brasil interagindo com os torcedores em tempo real
Copa do mundo no brasil   interagindo com os torcedores em tempo realCopa do mundo no brasil   interagindo com os torcedores em tempo real
Copa do mundo no brasil interagindo com os torcedores em tempo real
 
Implementação de Servidor Linux Ubuntu Server
Implementação de Servidor Linux Ubuntu ServerImplementação de Servidor Linux Ubuntu Server
Implementação de Servidor Linux Ubuntu Server
 
03 estrategia-ddos
03 estrategia-ddos03 estrategia-ddos
03 estrategia-ddos
 
Kerberos e OpenLDAP: Ambiente SSO OpenSource
Kerberos e OpenLDAP: Ambiente SSO OpenSourceKerberos e OpenLDAP: Ambiente SSO OpenSource
Kerberos e OpenLDAP: Ambiente SSO OpenSource
 
De A a Zabbix Devry Metrocamp
De A a Zabbix Devry MetrocampDe A a Zabbix Devry Metrocamp
De A a Zabbix Devry Metrocamp
 
Memcached
MemcachedMemcached
Memcached
 
Descobrindo o Nginx - Um servidor web de alta performance
Descobrindo o Nginx - Um servidor web de alta performanceDescobrindo o Nginx - Um servidor web de alta performance
Descobrindo o Nginx - Um servidor web de alta performance
 

Semelhante a Caching

Cache em aplicações web
Cache em aplicações webCache em aplicações web
Cache em aplicações web
Jean Carlo Emer
 
Como o HTTP/2 vai mudar sua vida
Como o HTTP/2 vai mudar sua vidaComo o HTTP/2 vai mudar sua vida
Como o HTTP/2 vai mudar sua vida
Caelum
 
Cache, Concorrência e Sincronização.
Cache, Concorrência e Sincronização.Cache, Concorrência e Sincronização.
Cache, Concorrência e Sincronização.
Thiago Rondon
 
(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript
Carlos Santos
 
Cacti
CactiCacti
Entregando conteúdo em ambientes extremos na JVM
Entregando conteúdo em ambientes extremos na JVMEntregando conteúdo em ambientes extremos na JVM
Entregando conteúdo em ambientes extremos na JVM
Rodrigo Zaccara
 
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Fabiano Weimar
 
OWASP AppSec 2010 BRAZIL Information Extraction Art of Testing Network Periph...
OWASP AppSec 2010 BRAZIL Information Extraction Art of Testing Network Periph...OWASP AppSec 2010 BRAZIL Information Extraction Art of Testing Network Periph...
OWASP AppSec 2010 BRAZIL Information Extraction Art of Testing Network Periph...
Mauro Risonho de Paula Assumpcao
 
Um milhao de usuários simultâneos
Um milhao de usuários simultâneosUm milhao de usuários simultâneos
Um milhao de usuários simultâneos
Fernando Ike
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHP
Felipe Ribeiro
 
PHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta PerformancePHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta Performance
Felipe Ribeiro
 
LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04
Carlos Santos
 
Cakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudouCakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudou
Felipe Vargas Rigo
 
Aumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinadaAumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinada
Henrique Lima
 
Aumente a performance de seu site
Aumente a performance de seu siteAumente a performance de seu site
Aumente a performance de seu site
Henrique Lima
 
Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?
Marcelo Dieder
 
Hyper Text Transfer Protocol (HTTP)
Hyper Text Transfer Protocol (HTTP)Hyper Text Transfer Protocol (HTTP)
Hyper Text Transfer Protocol (HTTP)
elliando dias
 
Como definir a quantidade de workers para sua aplicação
Como definir a quantidade de workers para sua aplicaçãoComo definir a quantidade de workers para sua aplicação
Como definir a quantidade de workers para sua aplicação
Weverton Timoteo
 
gRPC: Por que você ainda usa REST?
gRPC: Por que você ainda usa REST?gRPC: Por que você ainda usa REST?
gRPC: Por que você ainda usa REST?
Yago Tomé
 
Escalabilidade em Aplicações - Fisl13
Escalabilidade em Aplicações - Fisl13Escalabilidade em Aplicações - Fisl13
Escalabilidade em Aplicações - Fisl13
Flavio Torres
 

Semelhante a Caching (20)

Cache em aplicações web
Cache em aplicações webCache em aplicações web
Cache em aplicações web
 
Como o HTTP/2 vai mudar sua vida
Como o HTTP/2 vai mudar sua vidaComo o HTTP/2 vai mudar sua vida
Como o HTTP/2 vai mudar sua vida
 
Cache, Concorrência e Sincronização.
Cache, Concorrência e Sincronização.Cache, Concorrência e Sincronização.
Cache, Concorrência e Sincronização.
 
(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript
 
Cacti
CactiCacti
Cacti
 
Entregando conteúdo em ambientes extremos na JVM
Entregando conteúdo em ambientes extremos na JVMEntregando conteúdo em ambientes extremos na JVM
Entregando conteúdo em ambientes extremos na JVM
 
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
 
OWASP AppSec 2010 BRAZIL Information Extraction Art of Testing Network Periph...
OWASP AppSec 2010 BRAZIL Information Extraction Art of Testing Network Periph...OWASP AppSec 2010 BRAZIL Information Extraction Art of Testing Network Periph...
OWASP AppSec 2010 BRAZIL Information Extraction Art of Testing Network Periph...
 
Um milhao de usuários simultâneos
Um milhao de usuários simultâneosUm milhao de usuários simultâneos
Um milhao de usuários simultâneos
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHP
 
PHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta PerformancePHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta Performance
 
LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04
 
Cakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudouCakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudou
 
Aumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinadaAumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinada
 
Aumente a performance de seu site
Aumente a performance de seu siteAumente a performance de seu site
Aumente a performance de seu site
 
Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?
 
Hyper Text Transfer Protocol (HTTP)
Hyper Text Transfer Protocol (HTTP)Hyper Text Transfer Protocol (HTTP)
Hyper Text Transfer Protocol (HTTP)
 
Como definir a quantidade de workers para sua aplicação
Como definir a quantidade de workers para sua aplicaçãoComo definir a quantidade de workers para sua aplicação
Como definir a quantidade de workers para sua aplicação
 
gRPC: Por que você ainda usa REST?
gRPC: Por que você ainda usa REST?gRPC: Por que você ainda usa REST?
gRPC: Por que você ainda usa REST?
 
Escalabilidade em Aplicações - Fisl13
Escalabilidade em Aplicações - Fisl13Escalabilidade em Aplicações - Fisl13
Escalabilidade em Aplicações - Fisl13
 

Mais de Marcelo Serpa

AWS Organizations
AWS OrganizationsAWS Organizations
AWS Organizations
Marcelo Serpa
 
Web 3.0 - The Future of Web
Web 3.0 - The Future of WebWeb 3.0 - The Future of Web
Web 3.0 - The Future of Web
Marcelo Serpa
 
Frontend Track NodeJS
Frontend Track NodeJSFrontend Track NodeJS
Frontend Track NodeJS
Marcelo Serpa
 
Netty training
Netty trainingNetty training
Netty training
Marcelo Serpa
 
Terraform
TerraformTerraform
Terraform
Marcelo Serpa
 
Cqrs
CqrsCqrs
Microservices
MicroservicesMicroservices
Microservices
Marcelo Serpa
 
Defenda seus consumidores
Defenda seus consumidoresDefenda seus consumidores
Defenda seus consumidores
Marcelo Serpa
 
Service discovery with Eureka and Spring Cloud
Service discovery with Eureka and Spring CloudService discovery with Eureka and Spring Cloud
Service discovery with Eureka and Spring Cloud
Marcelo Serpa
 
Acessando apis com feign e hystrix
Acessando apis com feign e hystrixAcessando apis com feign e hystrix
Acessando apis com feign e hystrix
Marcelo Serpa
 
No core do node js - entendendo como a plataforma trabalha
No core do node js  - entendendo como a plataforma trabalhaNo core do node js  - entendendo como a plataforma trabalha
No core do node js - entendendo como a plataforma trabalha
Marcelo Serpa
 
Componentizacao com ReactJs
Componentizacao com ReactJsComponentizacao com ReactJs
Componentizacao com ReactJs
Marcelo Serpa
 
Clean code
Clean codeClean code
Clean code
Marcelo Serpa
 

Mais de Marcelo Serpa (13)

AWS Organizations
AWS OrganizationsAWS Organizations
AWS Organizations
 
Web 3.0 - The Future of Web
Web 3.0 - The Future of WebWeb 3.0 - The Future of Web
Web 3.0 - The Future of Web
 
Frontend Track NodeJS
Frontend Track NodeJSFrontend Track NodeJS
Frontend Track NodeJS
 
Netty training
Netty trainingNetty training
Netty training
 
Terraform
TerraformTerraform
Terraform
 
Cqrs
CqrsCqrs
Cqrs
 
Microservices
MicroservicesMicroservices
Microservices
 
Defenda seus consumidores
Defenda seus consumidoresDefenda seus consumidores
Defenda seus consumidores
 
Service discovery with Eureka and Spring Cloud
Service discovery with Eureka and Spring CloudService discovery with Eureka and Spring Cloud
Service discovery with Eureka and Spring Cloud
 
Acessando apis com feign e hystrix
Acessando apis com feign e hystrixAcessando apis com feign e hystrix
Acessando apis com feign e hystrix
 
No core do node js - entendendo como a plataforma trabalha
No core do node js  - entendendo como a plataforma trabalhaNo core do node js  - entendendo como a plataforma trabalha
No core do node js - entendendo como a plataforma trabalha
 
Componentizacao com ReactJs
Componentizacao com ReactJsComponentizacao com ReactJs
Componentizacao com ReactJs
 
Clean code
Clean codeClean code
Clean code
 

Último

Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Gabriel de Mattos Faustino
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 

Último (8)

Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 

Caching

  • 2. Como é a internet?
  • 3. Custo de uma chamada HTTP
  • 4. O que é cache? - Cria uma cópia local do resultado de uma chamada HTTP - Reduz custo de processamento e round-trips necessário para buscar um recurso - Ideal para operações idempotentes
  • 5. Como funciona? Via cabeçalho HTTP - Expires - Cache-control
  • 6. Expires O servidor define uma data de validade para a resposta. $ curl -X GET -I localhost:8080/product/v1/products/1 HTTP/1.1 200 Expires: Seg, 21 jan 2019 23:56:36 BRST Content-Type: application/json;charset=UTF-8 Transfer-Encoding: chunked Date: Mon, 22 Jan 2018 01:56:36 GMT
  • 7. Cache-control É uma evolução do Expires possui mais controle sobre o ciclo de vida do cache $ curl -X GET -I localhost:8080/product/v1/products/1 HTTP/1.1 200 Cache-Control: max-age=604800, private Content-Type: application/json;charset=UTF-8 Transfer-Encoding: chunked Date: Mon, 22 Jan 2018 02:26:18 GMT
  • 8. Validação Existem duas formas de revalidar uma resposta: ETAGs e Last-Modified $ curl -X GET -I localhost:8080/product/v1/products/1 HTTP/1.1 200 Last-Modified: Mon, 09 Jan 2017 10:30:20 GMT ETag: "fa858e16-461b-4ff3-bf2e-74b4c4557b36" Content-Type: application/json;charset=UTF-8 Transfer-Encoding: chunked Date: Mon, 22 Jan 2018 02:32:29 GMT
  • 10. Tipos de cache - Browser - Proxy - Gateway - Aplicação
  • 11. Tipos de cache - Browser - Browser implementa a especificação de cache HTTP - Cliente pode limpar o cache - Cache referente apenas à um usuário - chrome://view-http-cache
  • 12. Tipos de cache - Proxy - Cache compartilhado - Cache referente apenas à vários usuários - Evitar usar com informações sensíveis - Sem controle
  • 13. Tipos de cache - Gateway - Responsável pelo cache fica na frente da aplicação - Pode fazer balanceamento de carga - Mais fácil de controlar - Pode-se usar NGINX ou Apache para fazer proxy-reverso
  • 14. Tipos de cache - Aplicação - Aplicação controla - In-memory: Redis e Memcached - Cache em arquivo - Memoization
  • 15. Como poderíamos usar cache eficientemente para uma API REST usada nessa tela?