SlideShare una empresa de Scribd logo
HTTP 304
[ Not Modified ]
HTTP 304
HTTP 304
#QuienSoy
Ricardo Pereira
@Ricard0Per
www.ricardopereira.es
Arquitecto PHP Senior
Administrador de Sistemas
Do You Speak
PORTUÑOL?
HTTP / 1.0 - Mayo 1996
https://www.ietf.org/rfc/rfc1945.txt
HTTP / 1.1 - Junio 1999
https://www.ietf.org/rfc/rfc2616.txt
Mayo 2015
https://www.ietf.org/rfc/rfc7540.txt
HTTP 304
HTTP 304
Petición HTTP
Cliente
HTTP
Servidor
HTTP
GET /webpage HTTP/1.1
Host: beonprice.com
User-Agent: FastBrowser/2.1
Cache-Control: max-age=0
If-Modified-Since: Fri, 01 Jan 2016
If-None-Match: abcdef123456789
Accept: text/html
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 234
Cache-Control: max-age=5
Last-Modified: Sat, 02 Jan 2016
ETag: abc123456789
Vary: Accept-Encoding
GET /webpage HTTP/1.1
Host: beonprice.com
User-Agent: FastBrowser/2.1
Cache-Control: max-age=0
If-Modified-Since: Fri, 01 Jan 2016
If-None-Match: abcdef123456789
Accept: text/html
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 234
Cache-Control: max-age=5
Last-Modified: Sat, 02 Jan 2016
ETag: abc123456789
Vary: Accept-Encoding
HTTP 304
Peticiones HTTP
Una página web en 2015 tiene de
media unas 100 peticiones HTTP:
* 2Mb tamaño
* 56 imágenes
* 20 JavaScript
* 7 CSS
* 3 fuentes
REF.: http://www.sitepoint.com/2mb-web-pages-whos-blame/
Esta cantidad de peticiones implica
determinadas desventajas:
* Obtener un elemento es lento y caro
* Muchos recorridos de ida y vuelta
* Gran tamaño de las respuestas
* Costes de datos para el visitante
* Tiempos de respuestas elevados
CACHÉ
[ To The Rescue ]
HTTP 304
HTTP 304
Modelos de Caché
De caducidad
Expires
( HTTP/1.0 )
Cache-Control
( HTTP/1.1 )
De validación
If-None-Match
ETag
If-Modified-Since
Last-Modified
CADUCIDAD
[ Modelo de ]
HTTP 304
HTTP 304
Expires ( HTTP/1.0 )
Navegador
CachéNavegador
ServidorHTTP
GET /webpage HTTP/1.0
Host: beonprice.com
GET /webpage HTTP/1.0
Host: beonprice.com
HTTP/1.0 200 OK
Expires: Sat, 02 Jan 2016
HTTP/1.0 200 OK
Expires: Sat, 02 Jan 2016
GET /webpage HTTP/1.0
Host: beonprice.com
HTTP/1.0 304 OK
Expires: Sat, 02 Jan 2016
Fri, 01 Jan 2016
Fri, 01 Jan 2016
..:: NOTA ::..
No hay petición al servidor
HTTP 304
Cache-Control ( HTTP/1.1 )
Navegador
CachéNavegador
ServidorHTTP
GET /webpage HTTP/1.1
Host: beonprice.com
GET /webpage HTTP/1.1
Host: beonprice.com
HTTP/1.1 200 OK
Cache-Control: max-age=60
GET /webpage HTTP/1.1
Host: beonprice.com
12:00:00
12:00:30
..:: NOTA ::..
No hay petición al servidor
HTTP/1.1 200 OK
Cache-Control: max-age=60
HTTP/1.1 304 OK
Cache-Control: max-age=60
Age: 30
VALIDACIÓN
[ Modelo de ]
HTTP 304
HTTP 304
If-None-Match / ETag
Navegador
CachéNavegador
ServidorHTTP
GET /webpage HTTP/1.1
Host: beonprice.com
GET /webpage HTTP/1.1
Host: beonprice.com
HTTP/1.1 200 OK
ETag: abcd1234
HTTP/1.1 200 OK
ETag: abcd1234
GET /webpage HTTP/1.1
Host: beonprice.com
If-None-Match: abcd1234
HTTP/1.1 304 OK
ETag: abcd1234
GET /webpage HTTP/1.1
Host: beonprice.com
If-None-Match: abcd1234
HTTP/1.1 304 OK
ETag: abcd1234
HTTP 304
If-Modified-Since / Last-Modified
Navegador
CachéNavegador
ServidorHTTP
GET /webpage HTTP/1.1
Host: beonprice.com
GET /webpage HTTP/1.1
Host: beonprice.com
HTTP/1.1 200 OK
Last-Modified: Fri, 01 Jan 2016
HTTP/1.1 200 OK
Last-Modified: Fri, 01 Jan 2016
GET /webpage HTTP/1.1
Host: beonprice.com
If-Modified-Since: Fri, 01 Jan 2016
HTTP/1.1 304 OK
Last-Modified: Fri, 01 Jan 2016
GET /webpage HTTP/1.1
Host: beonprice.com
If-Modified-Since: Fri, 01 Jan 2016
HTTP/1.1 304 OK
Last-Modified: Fri, 01 Jan 2016
HTTP 304
Puntos Relevantes
De caducidad
Escalan mejor
Menos peticiones al servidor
Tiempos de respuesta más rápidos
Se recomienda en archivos estáticos
De validación
Ahorra tráfico de datos
Respuestas 304 sin contenido
Contenido siempre actualizado
Se recomienda en páginas dinámicos
Se puede combinar las cabeceras que se desee
Las de caducidad ganan sobre las de validación
El objetivo es no generar la misma respuesta dos veces
HTTP CACHÉ
TIPOS DE
HTTP 304
HTTP 304
Client Cache
Resource
Cache
beonprice.com
HTTP 304
Proxy Cache
Resource
Cache
Proxy Cache
beonprice.com
Corporate Domain or ISP
HTTP 304
Gateway Cache
Resource
Cache
Gateway Cache beonprice.com
Datacenter
GATEWAY CACHE
HTTP 304
HTTP 304
Sin Gateway Cache
Inconvenientes:
* Generar páginas dinámicas
es lento y costoso
* Tienen de servir contenido
estático de forma constante
* Congestionamientos de red
* Tiempos de respuesta altos
HTTP 304
Con Gateway Cache
Ventajas:
* Contenido estático se sirve muy
rápido y con pocos recursos
* Gateway sirve 99% del contenido
estático y servers solo contenido
dinámico
* Tiempos de respuesta bajos
* La misma carga, menos servers
Solo si gateway no tiene caché
HTTP 304
Cache-Control ( HTTP/1.1 )
Navegador
CachéNavegador
ServidorHTTP
GET /webpage HTTP/1.1
Host: beonprice.com
12:00:00 GET /webpage HTTP/1.1
Host: beonprice.com
GET /webpage HTTP/1.1
Host: beonprice.com
GatewayCache
HTTP/1.1 200 OK
Cache-Control: max-age=60
HTTP/1.1 200 OK
Cache-Control: max-age=60
HTTP/1.1 200 OK
Cache-Control: max-age=60
HTTP/1.1 304 OK
Cache-Control: max-age=60
Age: 30
..:: NOTA ::..
No hay petición al gateway
GET /webpage HTTP/1.1
Host: beonprice.com
12:00:30
..:: NOTA ::..
No hay petición al servidor
HTTP 304
If-None-Match / ETag
Navegador
CachéNavegador
ServidorHTTP
GET /webpage HTTP/1.1
Host: beonprice.com
GET /webpage HTTP/1.1
Host: beonprice.com
GET /webpage HTTP/1.1
Host: beonprice.com
GatewayCache
HTTP/1.1 200 OK
ETag: abcd1234
HTTP/1.1 200 OK
ETag: abcd1234
HTTP/1.1 200 OK
ETag: abcd1234
HTTP/1.1 304 OK
ETag: abcd1234
GET /webpage HTTP/1.1
Host: beonprice.com
If-None-Match: abcd1234
GET /webpage HTTP/1.1
Host: beonprice.com
If-None-Match: abcd1234
GET /webpage HTTP/1.1
Host: beonprice.com
If-None-Match: abcd1234
HTTP/1.1 304 OK
ETag: abcd1234
HTTP/1.1 304 OK
ETag: abcd1234
GET /webpage HTTP/1.1
Host: beonprice.com
If-None-Match: abcd1234
HTTP/1.1 200 OK
ETag: efgh5678
GET /webpage HTTP/1.1
Host: beonprice.com
If-None-Match: abcd1234
GET /webpage HTTP/1.1
Host: beonprice.com
If-None-Match: abcd1234
HTTP/1.1 200 OK
ETag: efgh5678
HTTP/1.1 200 OK
ETag: efgh5678
HTTP 304
[ No iba hablar de ]
HTTP 304
1001M10M100M
HTTP 304
Problemas y más Problemas
* Congestión de la red entre servers del
datacenter
* Página muy dinámica y de coste
elevado
* Sólo se puede almacenar páginas
web enteras en caché
* Tiempos de caché por página muy
pequeños para mantener frescura del
bloque central (10 segundos)
* No es posible renderizar bloques en
otros servers
ESI
[ To The Rescue ]
HTTP 304
Edge Side Includes 1.0 - Agosto 2001
https://www.w3.org/TR/esi-lang
HTTP 304
<html>
<body>
<div id="pagelet_composer">
<esi:include src="/composer" />
</div>
<div id="topnews_main_stream">
<esi:include src="/topnews" />
</div>
<div class="home_right_column">
<esi:include src="/rightCol" />
</div>
<div id="pagelet_rhc_footer">
<esi:include src="/footer" />
</div>
</body>
</html>
HTTP 304
Petición ESI (0s)
ClienteHTTP
GatewayCache
ServidorHTTP
ESIProcessor
facebook.com/webpage
200 - Cache-Control: max-age: 10
/webpage /webpage
200 - Cache-Control: max-age: 10200 - Cache-Control: max-age: 10
/composer
200 - Cache-Control: s-maxage: 2592000
/composer
200 - Cache-Control: s-maxage: 2592000
/topnews
200 - Cache-Control: s-maxage: 10
/topnews
200 - Cache-Control: s-maxage: 10
/rightCol
200 - Cache-Control: s-maxage: 60
/rightCol
200 - Cache-Control: s-maxage: 60
/footer
200 - Cache-Control: s-maxage: 2592000
/footer
200 - Cache-Control: s-maxage: 2592000
HTTP 304
Petición ESI (+5s)
ClienteHTTP
GatewayCache
ServidorHTTP
ESIProcessor
facebook.com/webpage
304 - Age: 5
..:: NOTA ::..
No hay petición al servidor
..:: NOTA ::..
Procesador ESI sin carga
HTTP 304
Petición ESI (+11s)
ClienteHTTP
GatewayCache
ServidorHTTP
ESIProcessor
facebook.com/webpage
200 - Cache-Control: max-age: 10
/webpage /webpage
200 - Cache-Control: max-age: 10200 - Cache-Control: max-age: 10
/composer
304 - Age: 10
/topnews
200 - Cache-Control: s-maxage: 10
/topnews
200 - Cache-Control: s-maxage: 10
/rightCol
304 - Age: 10
/footer
304 - Age: 10
HTTP 304
Petición ESI (+61s)
ClienteHTTP
GatewayCache
ServidorHTTP
ESIProcessor
facebook.com/webpage
200 - Cache-Control: max-age: 10
/webpage /webpage
200 - Cache-Control: max-age: 10200 - Cache-Control: max-age: 10
/composer
304 - Age: 60
/topnews
200 - Cache-Control: s-maxage: 10
/topnews
200 - Cache-Control: s-maxage: 10
/rightCol
200 - Cache-Control: s-maxage: 60
/rightCol
200 - Cache-Control: s-maxage: 60
/footer
304 - Age: 60
HTTP 304
100M
HTTP 304
Ahorro de Datos en el Footer
1.591.000.000 usuarios en 2015
12.6 páginas vistas por usuario
Footer actual ocupa 1.7KB
Código ESI ocupa 0.5KB
REF.:
http://www.alexa.com/siteinfo/facebook.com
http://expandedramblings.com/index.php/by-the-numbers-17-amazing-face
book-stats/
Tráfico dentro del datacenter:
Footer sin ESI: 34.1TB
Footer con ESI: 10TB
Ahorro: 24.1TB
NOTA: Ahorro por cada nivel de infraestructura
GRACIAS
[ Preguntas ]
HTTP 304

Más contenido relacionado

Similar a HTTP 304 - Not Modified

(20.05.2009) Cumuy Presenta - Más tecnologías interesantes para conocer - PPT 1
(20.05.2009) Cumuy Presenta - Más tecnologías interesantes para conocer - PPT 1(20.05.2009) Cumuy Presenta - Más tecnologías interesantes para conocer - PPT 1
(20.05.2009) Cumuy Presenta - Más tecnologías interesantes para conocer - PPT 1
Microsoft Argentina y Uruguay [Official Space]
 
ROA - Resource Oriented Architecture
ROA - Resource Oriented ArchitectureROA - Resource Oriented Architecture
ROA - Resource Oriented Architecture
Javier Lafora Rey
 
Curso de php
Curso de phpCurso de php
Tecnologias Web Semantica
Tecnologias Web SemanticaTecnologias Web Semantica
Tecnologias Web Semantica
Jose Emilio Labra Gayo
 
1 fundamentos web
1 fundamentos web1 fundamentos web
1 fundamentos web
Jose Emilio Labra Gayo
 
As400web server
As400web serverAs400web server
As400web server
reamador2018
 
High performance Web Sites
High performance Web SitesHigh performance Web Sites
High performance Web Sites
openfinanceDev
 
Ajax reverse (Comet) con ASP.NET MVC - JUTI 2011
Ajax reverse (Comet) con ASP.NET MVC - JUTI 2011Ajax reverse (Comet) con ASP.NET MVC - JUTI 2011
Ajax reverse (Comet) con ASP.NET MVC - JUTI 2011
Desarrollos NEA
 
Fundamentos de la web
Fundamentos de la webFundamentos de la web
Fundamentos de la web
Facultad de Ciencias y Sistemas
 
Gestión de configuración con mercurial y etckeeper
Gestión de configuración con mercurial y etckeeperGestión de configuración con mercurial y etckeeper
Gestión de configuración con mercurial y etckeeper
Ernesto Crespo
 
UDA-Anexo emulación xhr-iframes
UDA-Anexo emulación xhr-iframesUDA-Anexo emulación xhr-iframes
UDA-Anexo emulación xhr-iframes
Ander Martinez
 
Presentación Congreso Internet del Mediterráneo
Presentación Congreso Internet del MediterráneoPresentación Congreso Internet del Mediterráneo
Presentación Congreso Internet del Mediterráneo
Fernando Serer
 
Fundamentos de la web
Fundamentos de la webFundamentos de la web
Fundamentos de la web
Jose Emilio Labra Gayo
 
Introducció a les Aplicació Web
Introducció a les Aplicació WebIntroducció a les Aplicació Web
Introducció a les Aplicació Web
CarlesMG57
 

Similar a HTTP 304 - Not Modified (20)

(20.05.2009) Cumuy Presenta - Más tecnologías interesantes para conocer - PPT 1
(20.05.2009) Cumuy Presenta - Más tecnologías interesantes para conocer - PPT 1(20.05.2009) Cumuy Presenta - Más tecnologías interesantes para conocer - PPT 1
(20.05.2009) Cumuy Presenta - Más tecnologías interesantes para conocer - PPT 1
 
Seguridad en web
Seguridad en webSeguridad en web
Seguridad en web
 
Protocolo http
Protocolo httpProtocolo http
Protocolo http
 
2.12 http
2.12 http2.12 http
2.12 http
 
Protocolos de internet
Protocolos de internetProtocolos de internet
Protocolos de internet
 
ROA - Resource Oriented Architecture
ROA - Resource Oriented ArchitectureROA - Resource Oriented Architecture
ROA - Resource Oriented Architecture
 
Curso de php
Curso de phpCurso de php
Curso de php
 
Tecnologias Web Semantica
Tecnologias Web SemanticaTecnologias Web Semantica
Tecnologias Web Semantica
 
1 fundamentos web
1 fundamentos web1 fundamentos web
1 fundamentos web
 
As400web server
As400web serverAs400web server
As400web server
 
High performance Web Sites
High performance Web SitesHigh performance Web Sites
High performance Web Sites
 
Ajax reverse (Comet) con ASP.NET MVC - JUTI 2011
Ajax reverse (Comet) con ASP.NET MVC - JUTI 2011Ajax reverse (Comet) con ASP.NET MVC - JUTI 2011
Ajax reverse (Comet) con ASP.NET MVC - JUTI 2011
 
Fundamentos de la web
Fundamentos de la webFundamentos de la web
Fundamentos de la web
 
Gestión de configuración con mercurial y etckeeper
Gestión de configuración con mercurial y etckeeperGestión de configuración con mercurial y etckeeper
Gestión de configuración con mercurial y etckeeper
 
UDA-Anexo emulación xhr-iframes
UDA-Anexo emulación xhr-iframesUDA-Anexo emulación xhr-iframes
UDA-Anexo emulación xhr-iframes
 
Presentación Congreso Internet del Mediterráneo
Presentación Congreso Internet del MediterráneoPresentación Congreso Internet del Mediterráneo
Presentación Congreso Internet del Mediterráneo
 
Fundamentos de la web
Fundamentos de la webFundamentos de la web
Fundamentos de la web
 
Http
HttpHttp
Http
 
22 http ftp_linux_asoitson
22 http ftp_linux_asoitson22 http ftp_linux_asoitson
22 http ftp_linux_asoitson
 
Introducció a les Aplicació Web
Introducció a les Aplicació WebIntroducció a les Aplicació Web
Introducció a les Aplicació Web
 

Último

Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
rafaelsalazar0615
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
DiegoCampos433849
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
JulyMuoz18
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
AlejandraCasallas7
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
CrystalRomero18
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
PABLOCESARGARZONBENI
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
Emilio Casbas
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
Leidyfuentes19
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
SamuelRamirez83524
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
44652726
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
cj3806354
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
Luis Enrique Zafra Haro
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
cdraco
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
zoecaicedosalazar
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Telefónica
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
jjfch3110
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 

Último (20)

Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 

HTTP 304 - Not Modified

  • 1. HTTP 304 [ Not Modified ]
  • 5. HTTP / 1.0 - Mayo 1996 https://www.ietf.org/rfc/rfc1945.txt HTTP / 1.1 - Junio 1999 https://www.ietf.org/rfc/rfc2616.txt Mayo 2015 https://www.ietf.org/rfc/rfc7540.txt HTTP 304
  • 6. HTTP 304 Petición HTTP Cliente HTTP Servidor HTTP GET /webpage HTTP/1.1 Host: beonprice.com User-Agent: FastBrowser/2.1 Cache-Control: max-age=0 If-Modified-Since: Fri, 01 Jan 2016 If-None-Match: abcdef123456789 Accept: text/html HTTP/1.1 200 OK Content-Type: text/html Content-Length: 234 Cache-Control: max-age=5 Last-Modified: Sat, 02 Jan 2016 ETag: abc123456789 Vary: Accept-Encoding GET /webpage HTTP/1.1 Host: beonprice.com User-Agent: FastBrowser/2.1 Cache-Control: max-age=0 If-Modified-Since: Fri, 01 Jan 2016 If-None-Match: abcdef123456789 Accept: text/html HTTP/1.1 200 OK Content-Type: text/html Content-Length: 234 Cache-Control: max-age=5 Last-Modified: Sat, 02 Jan 2016 ETag: abc123456789 Vary: Accept-Encoding
  • 7. HTTP 304 Peticiones HTTP Una página web en 2015 tiene de media unas 100 peticiones HTTP: * 2Mb tamaño * 56 imágenes * 20 JavaScript * 7 CSS * 3 fuentes REF.: http://www.sitepoint.com/2mb-web-pages-whos-blame/ Esta cantidad de peticiones implica determinadas desventajas: * Obtener un elemento es lento y caro * Muchos recorridos de ida y vuelta * Gran tamaño de las respuestas * Costes de datos para el visitante * Tiempos de respuestas elevados
  • 8. CACHÉ [ To The Rescue ] HTTP 304
  • 9. HTTP 304 Modelos de Caché De caducidad Expires ( HTTP/1.0 ) Cache-Control ( HTTP/1.1 ) De validación If-None-Match ETag If-Modified-Since Last-Modified
  • 10. CADUCIDAD [ Modelo de ] HTTP 304
  • 11. HTTP 304 Expires ( HTTP/1.0 ) Navegador CachéNavegador ServidorHTTP GET /webpage HTTP/1.0 Host: beonprice.com GET /webpage HTTP/1.0 Host: beonprice.com HTTP/1.0 200 OK Expires: Sat, 02 Jan 2016 HTTP/1.0 200 OK Expires: Sat, 02 Jan 2016 GET /webpage HTTP/1.0 Host: beonprice.com HTTP/1.0 304 OK Expires: Sat, 02 Jan 2016 Fri, 01 Jan 2016 Fri, 01 Jan 2016 ..:: NOTA ::.. No hay petición al servidor
  • 12. HTTP 304 Cache-Control ( HTTP/1.1 ) Navegador CachéNavegador ServidorHTTP GET /webpage HTTP/1.1 Host: beonprice.com GET /webpage HTTP/1.1 Host: beonprice.com HTTP/1.1 200 OK Cache-Control: max-age=60 GET /webpage HTTP/1.1 Host: beonprice.com 12:00:00 12:00:30 ..:: NOTA ::.. No hay petición al servidor HTTP/1.1 200 OK Cache-Control: max-age=60 HTTP/1.1 304 OK Cache-Control: max-age=60 Age: 30
  • 14. HTTP 304 If-None-Match / ETag Navegador CachéNavegador ServidorHTTP GET /webpage HTTP/1.1 Host: beonprice.com GET /webpage HTTP/1.1 Host: beonprice.com HTTP/1.1 200 OK ETag: abcd1234 HTTP/1.1 200 OK ETag: abcd1234 GET /webpage HTTP/1.1 Host: beonprice.com If-None-Match: abcd1234 HTTP/1.1 304 OK ETag: abcd1234 GET /webpage HTTP/1.1 Host: beonprice.com If-None-Match: abcd1234 HTTP/1.1 304 OK ETag: abcd1234
  • 15. HTTP 304 If-Modified-Since / Last-Modified Navegador CachéNavegador ServidorHTTP GET /webpage HTTP/1.1 Host: beonprice.com GET /webpage HTTP/1.1 Host: beonprice.com HTTP/1.1 200 OK Last-Modified: Fri, 01 Jan 2016 HTTP/1.1 200 OK Last-Modified: Fri, 01 Jan 2016 GET /webpage HTTP/1.1 Host: beonprice.com If-Modified-Since: Fri, 01 Jan 2016 HTTP/1.1 304 OK Last-Modified: Fri, 01 Jan 2016 GET /webpage HTTP/1.1 Host: beonprice.com If-Modified-Since: Fri, 01 Jan 2016 HTTP/1.1 304 OK Last-Modified: Fri, 01 Jan 2016
  • 16. HTTP 304 Puntos Relevantes De caducidad Escalan mejor Menos peticiones al servidor Tiempos de respuesta más rápidos Se recomienda en archivos estáticos De validación Ahorra tráfico de datos Respuestas 304 sin contenido Contenido siempre actualizado Se recomienda en páginas dinámicos Se puede combinar las cabeceras que se desee Las de caducidad ganan sobre las de validación El objetivo es no generar la misma respuesta dos veces
  • 19. HTTP 304 Proxy Cache Resource Cache Proxy Cache beonprice.com Corporate Domain or ISP
  • 20. HTTP 304 Gateway Cache Resource Cache Gateway Cache beonprice.com Datacenter
  • 22. HTTP 304 Sin Gateway Cache Inconvenientes: * Generar páginas dinámicas es lento y costoso * Tienen de servir contenido estático de forma constante * Congestionamientos de red * Tiempos de respuesta altos
  • 23. HTTP 304 Con Gateway Cache Ventajas: * Contenido estático se sirve muy rápido y con pocos recursos * Gateway sirve 99% del contenido estático y servers solo contenido dinámico * Tiempos de respuesta bajos * La misma carga, menos servers
  • 24. Solo si gateway no tiene caché HTTP 304 Cache-Control ( HTTP/1.1 ) Navegador CachéNavegador ServidorHTTP GET /webpage HTTP/1.1 Host: beonprice.com 12:00:00 GET /webpage HTTP/1.1 Host: beonprice.com GET /webpage HTTP/1.1 Host: beonprice.com GatewayCache HTTP/1.1 200 OK Cache-Control: max-age=60 HTTP/1.1 200 OK Cache-Control: max-age=60 HTTP/1.1 200 OK Cache-Control: max-age=60 HTTP/1.1 304 OK Cache-Control: max-age=60 Age: 30 ..:: NOTA ::.. No hay petición al gateway GET /webpage HTTP/1.1 Host: beonprice.com 12:00:30 ..:: NOTA ::.. No hay petición al servidor
  • 25. HTTP 304 If-None-Match / ETag Navegador CachéNavegador ServidorHTTP GET /webpage HTTP/1.1 Host: beonprice.com GET /webpage HTTP/1.1 Host: beonprice.com GET /webpage HTTP/1.1 Host: beonprice.com GatewayCache HTTP/1.1 200 OK ETag: abcd1234 HTTP/1.1 200 OK ETag: abcd1234 HTTP/1.1 200 OK ETag: abcd1234 HTTP/1.1 304 OK ETag: abcd1234 GET /webpage HTTP/1.1 Host: beonprice.com If-None-Match: abcd1234 GET /webpage HTTP/1.1 Host: beonprice.com If-None-Match: abcd1234 GET /webpage HTTP/1.1 Host: beonprice.com If-None-Match: abcd1234 HTTP/1.1 304 OK ETag: abcd1234 HTTP/1.1 304 OK ETag: abcd1234 GET /webpage HTTP/1.1 Host: beonprice.com If-None-Match: abcd1234 HTTP/1.1 200 OK ETag: efgh5678 GET /webpage HTTP/1.1 Host: beonprice.com If-None-Match: abcd1234 GET /webpage HTTP/1.1 Host: beonprice.com If-None-Match: abcd1234 HTTP/1.1 200 OK ETag: efgh5678 HTTP/1.1 200 OK ETag: efgh5678
  • 26. HTTP 304 [ No iba hablar de ]
  • 28. HTTP 304 Problemas y más Problemas * Congestión de la red entre servers del datacenter * Página muy dinámica y de coste elevado * Sólo se puede almacenar páginas web enteras en caché * Tiempos de caché por página muy pequeños para mantener frescura del bloque central (10 segundos) * No es posible renderizar bloques en otros servers
  • 29. ESI [ To The Rescue ] HTTP 304
  • 30. Edge Side Includes 1.0 - Agosto 2001 https://www.w3.org/TR/esi-lang HTTP 304 <html> <body> <div id="pagelet_composer"> <esi:include src="/composer" /> </div> <div id="topnews_main_stream"> <esi:include src="/topnews" /> </div> <div class="home_right_column"> <esi:include src="/rightCol" /> </div> <div id="pagelet_rhc_footer"> <esi:include src="/footer" /> </div> </body> </html>
  • 31. HTTP 304 Petición ESI (0s) ClienteHTTP GatewayCache ServidorHTTP ESIProcessor facebook.com/webpage 200 - Cache-Control: max-age: 10 /webpage /webpage 200 - Cache-Control: max-age: 10200 - Cache-Control: max-age: 10 /composer 200 - Cache-Control: s-maxage: 2592000 /composer 200 - Cache-Control: s-maxage: 2592000 /topnews 200 - Cache-Control: s-maxage: 10 /topnews 200 - Cache-Control: s-maxage: 10 /rightCol 200 - Cache-Control: s-maxage: 60 /rightCol 200 - Cache-Control: s-maxage: 60 /footer 200 - Cache-Control: s-maxage: 2592000 /footer 200 - Cache-Control: s-maxage: 2592000
  • 32. HTTP 304 Petición ESI (+5s) ClienteHTTP GatewayCache ServidorHTTP ESIProcessor facebook.com/webpage 304 - Age: 5 ..:: NOTA ::.. No hay petición al servidor ..:: NOTA ::.. Procesador ESI sin carga
  • 33. HTTP 304 Petición ESI (+11s) ClienteHTTP GatewayCache ServidorHTTP ESIProcessor facebook.com/webpage 200 - Cache-Control: max-age: 10 /webpage /webpage 200 - Cache-Control: max-age: 10200 - Cache-Control: max-age: 10 /composer 304 - Age: 10 /topnews 200 - Cache-Control: s-maxage: 10 /topnews 200 - Cache-Control: s-maxage: 10 /rightCol 304 - Age: 10 /footer 304 - Age: 10
  • 34. HTTP 304 Petición ESI (+61s) ClienteHTTP GatewayCache ServidorHTTP ESIProcessor facebook.com/webpage 200 - Cache-Control: max-age: 10 /webpage /webpage 200 - Cache-Control: max-age: 10200 - Cache-Control: max-age: 10 /composer 304 - Age: 60 /topnews 200 - Cache-Control: s-maxage: 10 /topnews 200 - Cache-Control: s-maxage: 10 /rightCol 200 - Cache-Control: s-maxage: 60 /rightCol 200 - Cache-Control: s-maxage: 60 /footer 304 - Age: 60
  • 36. HTTP 304 Ahorro de Datos en el Footer 1.591.000.000 usuarios en 2015 12.6 páginas vistas por usuario Footer actual ocupa 1.7KB Código ESI ocupa 0.5KB REF.: http://www.alexa.com/siteinfo/facebook.com http://expandedramblings.com/index.php/by-the-numbers-17-amazing-face book-stats/ Tráfico dentro del datacenter: Footer sin ESI: 34.1TB Footer con ESI: 10TB Ahorro: 24.1TB NOTA: Ahorro por cada nivel de infraestructura