SlideShare une entreprise Scribd logo
1  sur  57
Télécharger pour lire hors ligne
HOW IT IS CHANGING WEB PERFORMANCE
HTTP/2
MATEUS PRADO
SOLUTIONS ARCHITECT AT SARAIVA
HTTP2
AGENDA
▸ History
▸ HTTP nowadays
▸ Improvements
▸ SPDY and HTTP2
▸ Security
$WHOAMI
MATEUS PRADO
▸ Software Developer, architect and systems engineer.
▸ I like software, hardware, cloud computing and airplanes.
Web Master - IT Instructor - Software Developer - Systems Engineer - DevOps - Architect
HTTP
WHAT IS IT?
HISTORY
TCP/IP MODEL
HISTORY
HYPERTEXT TRANSFER PROTOCOL
“The Hypertext Transfer Protocol (HTTP) is an application
protocol for distributed, collaborative, hypermedia information
systems.[1] HTTP is the foundation of data communication for
the World Wide Web.
Hypertext is structured text that uses logical links (hyperlinks)
between nodes containing text. HTTP is the protocol to
exchange or transfer hypertext.” - wikipedia.org
HTTP/0.9 HTTP/1.0 HTTP/1.1
1991 1996 1999
‣ Images
‣ POST method
‣ Status Code
‣ Compress, gzip‣ Text
‣ Request
‣ Response
HTTP/1.1
WEBSITE OBESITY CRISIS
HTTP1.1
HTTP NOWADAYS
‣ IMAGES, FONTS, CSS, JS
‣ 100 REQUEST
‣ MOBILE CONNECTIONS, LATENCY ADDS UP
‣ LARGER HEADERS
‣ X-HEADER
Client Server
HTTP/1.1
Request
Response
TCP Connection
index.html
style.css
Client Server
KEEP-ALIVE
TCP Connection
HEADER
Connection: keep-alive
Request
Response
HEADER
Connection: keep-alive
REQUEST
RESPONSE
CONNECTIONS
REQUESTS
LOAD FASTER
HTTP1.1
CONNECTIONS
‣ REQUEST AND RESPONSE ON A
CONNECTION
‣ MULTIPLE CONNECTIONS TO RENDER PAGE
‣ SCHEDULING AND PRIORITY
HTTP1.1
REQUESTS
‣ HTTP CACHING HEADER
‣ HACKS CONTENT
HTTP1.1
HTTP CACHING
HTTP/1.1 200 OK
CACHE-CONTROL: NO-TRANSFORM,PUBLIC,MAX-AGE=300,S-MAXAGE=900
CONTENT-TYPE: TEXT/HTML; CHARSET=UTF-8
DATE: MON, 29 APR 2013 16:38:15 GMT
ETAG: "BBEA5DB7E1785119A7F94FDD504C546E"
LAST-MODIFIED: SAT, 27 APR 2013 00:44:54 GMT
SERVER: AMAZONS3
VARY: ACCEPT-ENCODING
X-CACHE: HIT
HTTP1.1
HACKS
‣ MINIFY AND COMPRESS
‣ CSS SPRITES
‣ DATA URIS
‣ CSS AND JS TOGETHER
MINIFY
// The -is- object is used to identify the browser. Every browser edition
// identifies itself, but there is no standard way of doing it, and some of
// the identification is deceptive. This is because the authors of web
// browsers are liars. For example, Microsoft's IE browsers claim to be
// Mozilla 4. Netscape 6 claims to be version 5.
var is = {
ie: navigator.appName == 'Microsoft Internet Explorer',
java: navigator.javaEnabled(),
ns: navigator.appName == 'Netscape',
ua: navigator.userAgent.toLowerCase(),
version: parseFloat(navigator.appVersion.substr(21)) ||
parseFloat(navigator.appVersion),
win: navigator.platform == 'Win32'
}
is.mac = is.ua.indexOf('mac') >= 0;
if (is.ua.indexOf('opera') >= 0) {
is.ie = is.ns = false;
is.opera = true;
}
if (is.ua.indexOf('gecko') >= 0) {
is.ie = is.ns = false;
is.gecko = true;
}
var is={ie:navigator.appName=='Microsoft
Internet
Explorer',java:navigator.javaEnabled(),ns:n
avigator.appName=='Netscape',ua:navigator.u
serAgent.toLowerCase(),version:parseFloat(n
avigator.appVersion.substr(21))||
parseFloat(navigator.appVersion),win:naviga
tor.platform=='Win32'}
is.mac=is.ua.indexOf('mac')>=0;if(is.ua.ind
exOf('opera')>=0)
{is.ie=is.ns=false;is.opera=true;}
if(is.ua.indexOf('gecko')>=0)
{is.ie=is.ns=false;is.gecko=true;}
before
after
COMPRESS
GET /encrypted-area HTTP/1.1
Host: www.example.com
Accept-Encoding: gzip, deflate
HTTP/1.1 200 OK
Date: mon, 29 Feb 2016 22:38:34 GMT
Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux)
Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
Accept-Ranges: bytes
Content-Length: 438
Connection: close
Content-Type: text/html; charset=UTF-8
Content-Encoding: gzip
REQUEST
RESPONSE
CSS SPRITES
.facebook-ico, .plus-ico, .user-ico, … {
background-image: url('../images/icons.png');
background-repeat: no-repeat;
}
.facebook-ico {
height: 128px;
background-position: -5px -5px;
}
.user-ico {
height: 135px;
background-position: -5px -143px;
}
.cms-ico {
height: 147px;
background-position: -5px -288px;
}
...
DATA URIS
data:[<MIME-type>][;charset=<encoding>][;base64],<data>
<img width="64" height="69" alt="Treehouse Logo"
src="data:image/
png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABFCAYAA
AD6pOBtAAAABmJLR0QA/wD/AP
+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3g
MbBwwfAKopzQAAEfdJREFUeNrVW3uUHFWZ...">
HTTP1.1
LOAD FASTER
‣ PUT STYLESHEETS AT THE TOP
‣ PUT SCRIPTS AT THE BOTTOM
STYLESHEETS AT <HEAD>
<html>
<head>
<link rel="stylesheet" type="text/css" href="mystyle.css">
</head>
<body>
</body>
</html>
0.1 SECOND
1.0 SECOND
10 SECONDS
SCRIPTS AT <BODY>
<html>
<head>
<link rel="stylesheet" type="text/css" href=“mystyle.css">
</head>
<body>
</body>
<script src=“myscripts.js" defer></script>
</html>
HTTP/2
2009-2015
SPDY DISCONTINUED
“SPDY (pronounced speedy)[1] is an open networking protocol
developed primarily at Google for transporting web content.[1]
SPDY manipulates HTTP traffic, with particular goals of
reducing web page load latency and improving web security.
SPDY achieves reduced latency through compression,
multiplexing, and prioritization,[1] although this depends on a
combination of network and website deployment conditions.
[2][3][4] The name "SPDY" is a trademark[5] of Google and is
not an acronym.[6]” - wikipedia.org
HTTP/2
HOW IT AFFECT USERS?
‣ PERFORMANCE
‣ SECURITY*
PERFORMANCE
LATENCY
NETWORK AND SERVER RESOURCE USAGE
SINGLE CONNECTION
HPACK
HEADER COMPRESSION
REQUEST EXAMPLE
HTTP/1.1
GET / HTTP/1.1
Host: www.saraiva.com.br
Accept: text/html
Accept-Encoding: gzip
User-Agent User-Agent Mozilla/5.0 (Macintosh;
Cache-Control: max-age=0
GET /assets/style.css HTTP/1.1
Host: www.saraiva.com.br
Accept: text/html
Accept-Encoding: gzip
User-Agent User-Agent Mozilla/5.0 (Macintosh;
Cache-Control: max-age=0
HPACK
HTTP/2
:method: GET
:scheme: http
:host: www.saraiva.com.br
:path: /index.html
accept-encoding: gzip
user-agent: Mozilla/5.0 (Macintosh;
cache-control: max-age=0
:path: /assets/style.css
:path /images/saraiva-logo.png
:host: cdn.saraiva.com.br
:path: /beacon/track.jpeg
:host: beacon.saraiva.com.br
cache-control: private, max-age=0, no-cache
Client Server
MULTIPLEXING
index.html
js
css
png
TCP Connection
Client Server
SERVER PUSH
index.html
TCP Connection
index.html
style.css
application.js
logo.svg
<head><script async="true" type="text/javascript" src="http://widget.criteo.com/event?a=14416&amp;v=3.6.1&amp;p0=e%3Dce%26m%3D%255Bmateus
%252540mateusprado.com%255D%26h%3Dnone&amp;p1=e%3Dexd%26site_type%3Dd&amp;p2=e%3Dvh&amp;p3=e%3Ddis&amp;adce=1" data-owner="criteo-tag"></script>
<title>Saraiva.com.br: Livros, Tablets, Blu-Ray, Eletrônicos, Notebooks, Smartphones e mais.</title>
<script>window.chaordic_meta = {"page":{"name":"home","timestamp":new Date()}}</script>
<script async="" defer="" src="//static.chaordicsystems.com/static/loader.js" data-initialize="false" data-apikey="saraiva-v5"></script>
<link rel="stylesheet" type="text/css" href="http://www.saraiva.com.br/skin/frontend/saraiva/saraiva/css/styles.css?cache=MjAxNjAyMTE=" media="all">
<link rel="stylesheet" type="text/css" href="http://www.saraiva.com.br/skin/frontend/saraiva/saraiva/css/footer.css?cache=MjAxNjAyMTE=" media="all">
<link rel="stylesheet" type="text/css" href="http://www.saraiva.com.br/skin/frontend/saraiva/saraiva/css/responsive.css?cache=MjAxNjAyMTE=" media="all">
<link rel="stylesheet" type="text/css" href="http://www.saraiva.com.br/skin/frontend/saraiva/saraiva/css/medias_queries.css?cache=MjAxNjAyMTE=" media="all">
<link rel="stylesheet" type="text/css" href="http://www.saraiva.com.br/skin/frontend/saraiva/default/onsale/css/onsale_label.css?cache=MjAxNjAyMTE="
media="all">
<link rel="stylesheet" type="text/css" href="http://www.saraiva.com.br/skin/frontend/saraiva/saraiva/apptha-reviews/css/amazereviews.css?cache=MjAxNjAyMTE="
media="all">
<link rel="stylesheet" type="text/css" href="http://www.saraiva.com.br/skin/frontend/base/default/saraiva/jplayer/main.css?cache=MjAxNjAyMTE=" media="all">
<link rel="stylesheet" type="text/css" href="http://www.saraiva.com.br/skin/frontend/saraiva/responsive/css/structure/menu.css?cache=MjAxNjAyMTE="
media="all">
<link rel="stylesheet" type="text/css" href="http://www.saraiva.com.br/skin/frontend/base/default/saraiva/swiper/idangerous.swiper.css?cache=MjAxNjAyMTE="
media="all">
<script type="text/javascript" src="http://www.saraiva.com.br/js/prototype/prototype.js?cache=MjAxNjAyMTE="></script>
<script type="text/javascript" src="http://www.saraiva.com.br/js/prototype/validation.js?cache=MjAxNjAyMTE="></script>
<script type="text/javascript" src="http://www.saraiva.com.br/js/scriptaculous/effects.js?cache=MjAxNjAyMTE="></script>
<script type="text/javascript" src="http://www.saraiva.com.br/js/varien/js.js?cache=MjAxNjAyMTE="></script>
HTTP/2
BINARY
01010101010100
0101001
010011010101
01010101010100
0101001
01001101010101010101010100010101010101000101001
010011010101
01010010101010100010111
010011010101
HTTP/2
BINARY
‣ MORE EFFICIENT TO PARSE
‣ COMPACT “ON THE WIRE”
‣ LESS ERROR-PRONE
‣ WHITESPACE HANDLING, CAPITALIZATION,
LINE ENDINGS
Four different ways to parse a message in HTTP/1.1
in HTTP/2 there’s just one code path
SECURITY
SSL & TLS
SECURITY
SSL & TLS
‣ 13,2% SSL 2.0 - RFC6176 DEFICIENCIES
‣ 42,3% SSL 3.0 - KILLED BY THE POODLE ATTACK

‣ 99,7% TLS 1.0 - BEAST ATTACK
‣ 52,2% TLS 1.1
‣ 58.1% TLS 1.2
HTTP/2 IS USED BY 6.6% OF ALL THE WEBSITES.
THANK YOU!
REFERENCES
▸ https://http2.github.io
▸ httpwg.org
▸ The Internet Engineering 

Task Force (IETF®)
▸ HTTP/2 - RFC7540
▸ HPACK - RFC7541
TWITTER: @MATEUSPRADO
HANGOUT: MATEUSH.PRADO@GMAIL.COM

Contenu connexe

Tendances

I got 99 problems, but ReST ain't one
I got 99 problems, but ReST ain't oneI got 99 problems, but ReST ain't one
I got 99 problems, but ReST ain't oneAdrian Cole
 
A web perf dashboard up & running in 90 minutes presentation
A web perf dashboard up & running in 90 minutes presentationA web perf dashboard up & running in 90 minutes presentation
A web perf dashboard up & running in 90 minutes presentationJustin Dorfman
 
HTTPS + Let's Encrypt
HTTPS + Let's EncryptHTTPS + Let's Encrypt
HTTPS + Let's EncryptWalter Ebert
 
Enhancing Mobile User Experience with WebSocket
Enhancing Mobile User Experience with WebSocketEnhancing Mobile User Experience with WebSocket
Enhancing Mobile User Experience with WebSocketMauricio "Maltron" Leal
 
A Node.JS bag of goodies for analyzing Web Traffic
A Node.JS bag of goodies for analyzing Web TrafficA Node.JS bag of goodies for analyzing Web Traffic
A Node.JS bag of goodies for analyzing Web TrafficPhilip Tellis
 
HTTP/2 What's inside and Why
HTTP/2 What's inside and WhyHTTP/2 What's inside and Why
HTTP/2 What's inside and WhyAdrian Cole
 
Pushing the web — WebSockets
Pushing the web — WebSocketsPushing the web — WebSockets
Pushing the web — WebSocketsRoland M
 
Capistrano deploy Magento project in an efficient way
Capistrano deploy Magento project in an efficient wayCapistrano deploy Magento project in an efficient way
Capistrano deploy Magento project in an efficient waySylvain Rayé
 
Introduction to WebSockets
Introduction to WebSocketsIntroduction to WebSockets
Introduction to WebSocketsGunnar Hillert
 
How containers helped a SaaS startup be developed and go live
How containers helped a SaaS startup be developed and go liveHow containers helped a SaaS startup be developed and go live
How containers helped a SaaS startup be developed and go liveRamon Navarro
 
Seravo.com: WordPress Security 101
Seravo.com: WordPress Security 101Seravo.com: WordPress Security 101
Seravo.com: WordPress Security 101Seravo
 
HTTP For the Good or the Bad
HTTP For the Good or the BadHTTP For the Good or the Bad
HTTP For the Good or the BadXavier Mertens
 
Security and Privacy on the Web in 2015
Security and Privacy on the Web in 2015Security and Privacy on the Web in 2015
Security and Privacy on the Web in 2015Francois Marier
 
HTML5 WebSocket Introduction
HTML5 WebSocket IntroductionHTML5 WebSocket Introduction
HTML5 WebSocket IntroductionMarcelo Jabali
 
Plone 5 and machine learning
Plone 5 and machine learningPlone 5 and machine learning
Plone 5 and machine learningRamon Navarro
 
Apache httpd 2.4 Reverse Proxy: The Hidden Gem
Apache httpd 2.4 Reverse Proxy: The Hidden GemApache httpd 2.4 Reverse Proxy: The Hidden Gem
Apache httpd 2.4 Reverse Proxy: The Hidden GemJim Jagielski
 
Mobile web performance - MoDev East
Mobile web performance - MoDev EastMobile web performance - MoDev East
Mobile web performance - MoDev EastPatrick Meenan
 

Tendances (20)

I got 99 problems, but ReST ain't one
I got 99 problems, but ReST ain't oneI got 99 problems, but ReST ain't one
I got 99 problems, but ReST ain't one
 
Groovy VFS
Groovy VFSGroovy VFS
Groovy VFS
 
A web perf dashboard up & running in 90 minutes presentation
A web perf dashboard up & running in 90 minutes presentationA web perf dashboard up & running in 90 minutes presentation
A web perf dashboard up & running in 90 minutes presentation
 
HTTPS + Let's Encrypt
HTTPS + Let's EncryptHTTPS + Let's Encrypt
HTTPS + Let's Encrypt
 
Enhancing Mobile User Experience with WebSocket
Enhancing Mobile User Experience with WebSocketEnhancing Mobile User Experience with WebSocket
Enhancing Mobile User Experience with WebSocket
 
A Node.JS bag of goodies for analyzing Web Traffic
A Node.JS bag of goodies for analyzing Web TrafficA Node.JS bag of goodies for analyzing Web Traffic
A Node.JS bag of goodies for analyzing Web Traffic
 
HTTP/2 What's inside and Why
HTTP/2 What's inside and WhyHTTP/2 What's inside and Why
HTTP/2 What's inside and Why
 
Pushing the web — WebSockets
Pushing the web — WebSocketsPushing the web — WebSockets
Pushing the web — WebSockets
 
Capistrano deploy Magento project in an efficient way
Capistrano deploy Magento project in an efficient wayCapistrano deploy Magento project in an efficient way
Capistrano deploy Magento project in an efficient way
 
The HTML5 WebSocket API
The HTML5 WebSocket APIThe HTML5 WebSocket API
The HTML5 WebSocket API
 
Introduction to WebSockets
Introduction to WebSocketsIntroduction to WebSockets
Introduction to WebSockets
 
How containers helped a SaaS startup be developed and go live
How containers helped a SaaS startup be developed and go liveHow containers helped a SaaS startup be developed and go live
How containers helped a SaaS startup be developed and go live
 
Seravo.com: WordPress Security 101
Seravo.com: WordPress Security 101Seravo.com: WordPress Security 101
Seravo.com: WordPress Security 101
 
HTTP For the Good or the Bad
HTTP For the Good or the BadHTTP For the Good or the Bad
HTTP For the Good or the Bad
 
Security and Privacy on the Web in 2015
Security and Privacy on the Web in 2015Security and Privacy on the Web in 2015
Security and Privacy on the Web in 2015
 
HTML5 WebSocket Introduction
HTML5 WebSocket IntroductionHTML5 WebSocket Introduction
HTML5 WebSocket Introduction
 
Plone 5 and machine learning
Plone 5 and machine learningPlone 5 and machine learning
Plone 5 and machine learning
 
Apache httpd 2.4 Reverse Proxy: The Hidden Gem
Apache httpd 2.4 Reverse Proxy: The Hidden GemApache httpd 2.4 Reverse Proxy: The Hidden Gem
Apache httpd 2.4 Reverse Proxy: The Hidden Gem
 
HTTP/3 an early overview
HTTP/3 an early overviewHTTP/3 an early overview
HTTP/3 an early overview
 
Mobile web performance - MoDev East
Mobile web performance - MoDev EastMobile web performance - MoDev East
Mobile web performance - MoDev East
 

En vedette

HOJA DE VIDA.KA
HOJA DE VIDA.KAHOJA DE VIDA.KA
HOJA DE VIDA.KAkatty8
 
Infrabg verzeri cortinovis 20160517
Infrabg verzeri cortinovis 20160517Infrabg verzeri cortinovis 20160517
Infrabg verzeri cortinovis 20160517Alfredo Verzeri
 
SciTeam_MajorProjects_2011-2016
SciTeam_MajorProjects_2011-2016SciTeam_MajorProjects_2011-2016
SciTeam_MajorProjects_2011-2016Michael Schindel
 
Home Based Business Toronto Canada Andre Henriques
Home Based Business Toronto Canada Andre HenriquesHome Based Business Toronto Canada Andre Henriques
Home Based Business Toronto Canada Andre Henriquesandrehenriques
 
Reduce, Reuse, Restructure CHess
Reduce, Reuse, Restructure CHessReduce, Reuse, Restructure CHess
Reduce, Reuse, Restructure CHessChristopher Hess
 
Lee Hecht Personal Brand Presentation 9-9-09
Lee Hecht Personal Brand Presentation 9-9-09Lee Hecht Personal Brand Presentation 9-9-09
Lee Hecht Personal Brand Presentation 9-9-09Alicia Falcone
 
5th Convention on Sust Dev. - World Bank
5th Convention on Sust Dev. - World Bank5th Convention on Sust Dev. - World Bank
5th Convention on Sust Dev. - World BankAlvaro H. Pescador
 
Northern oral health working group
Northern oral health working groupNorthern oral health working group
Northern oral health working groupsaskohc
 
Mastering Model-based Systems Engineering
Mastering Model-based Systems EngineeringMastering Model-based Systems Engineering
Mastering Model-based Systems EngineeringAnsys
 
Language and discourse - cultural studies
Language and discourse - cultural studiesLanguage and discourse - cultural studies
Language and discourse - cultural studiesDr. Yesha Bhatt
 
Hitachi Solutions Ecommerce Design Guide Templates and Widgets
Hitachi Solutions Ecommerce Design Guide Templates and WidgetsHitachi Solutions Ecommerce Design Guide Templates and Widgets
Hitachi Solutions Ecommerce Design Guide Templates and WidgetsHitachi Solutions America, Ltd.
 

En vedette (16)

HOJA DE VIDA.KA
HOJA DE VIDA.KAHOJA DE VIDA.KA
HOJA DE VIDA.KA
 
Infrabg verzeri cortinovis 20160517
Infrabg verzeri cortinovis 20160517Infrabg verzeri cortinovis 20160517
Infrabg verzeri cortinovis 20160517
 
SciTeam_MajorProjects_2011-2016
SciTeam_MajorProjects_2011-2016SciTeam_MajorProjects_2011-2016
SciTeam_MajorProjects_2011-2016
 
Home Based Business Toronto Canada Andre Henriques
Home Based Business Toronto Canada Andre HenriquesHome Based Business Toronto Canada Andre Henriques
Home Based Business Toronto Canada Andre Henriques
 
Reduce, Reuse, Restructure CHess
Reduce, Reuse, Restructure CHessReduce, Reuse, Restructure CHess
Reduce, Reuse, Restructure CHess
 
Lee Hecht Personal Brand Presentation 9-9-09
Lee Hecht Personal Brand Presentation 9-9-09Lee Hecht Personal Brand Presentation 9-9-09
Lee Hecht Personal Brand Presentation 9-9-09
 
5th Convention on Sust Dev. - World Bank
5th Convention on Sust Dev. - World Bank5th Convention on Sust Dev. - World Bank
5th Convention on Sust Dev. - World Bank
 
Mechanical report
Mechanical reportMechanical report
Mechanical report
 
Northern oral health working group
Northern oral health working groupNorthern oral health working group
Northern oral health working group
 
Mastering Model-based Systems Engineering
Mastering Model-based Systems EngineeringMastering Model-based Systems Engineering
Mastering Model-based Systems Engineering
 
Language and discourse - cultural studies
Language and discourse - cultural studiesLanguage and discourse - cultural studies
Language and discourse - cultural studies
 
Overview of US Health Care System
Overview of US Health Care SystemOverview of US Health Care System
Overview of US Health Care System
 
Indices
IndicesIndices
Indices
 
Etiology of dental caries
Etiology of dental cariesEtiology of dental caries
Etiology of dental caries
 
Fake impact factor
Fake impact factorFake impact factor
Fake impact factor
 
Hitachi Solutions Ecommerce Design Guide Templates and Widgets
Hitachi Solutions Ecommerce Design Guide Templates and WidgetsHitachi Solutions Ecommerce Design Guide Templates and Widgets
Hitachi Solutions Ecommerce Design Guide Templates and Widgets
 

Similaire à HTTP2

OWASP Top 10 - Checkmarx Presentation at Polytechnic Institute of Cávado and Ave
OWASP Top 10 - Checkmarx Presentation at Polytechnic Institute of Cávado and AveOWASP Top 10 - Checkmarx Presentation at Polytechnic Institute of Cávado and Ave
OWASP Top 10 - Checkmarx Presentation at Polytechnic Institute of Cávado and AveCheckmarx
 
20190516 web security-basic
20190516 web security-basic20190516 web security-basic
20190516 web security-basicMksYi
 
V2 peter-lubbers-sf-jug-websocket
V2 peter-lubbers-sf-jug-websocketV2 peter-lubbers-sf-jug-websocket
V2 peter-lubbers-sf-jug-websocketbrent bucci
 
Web scale infrastructures with kubernetes and flannel
Web scale infrastructures with kubernetes and flannelWeb scale infrastructures with kubernetes and flannel
Web scale infrastructures with kubernetes and flannelpurpleocean
 
Website Testing Practices
Website Testing PracticesWebsite Testing Practices
Website Testing Practicesdeseomar
 
[CB16] 80時間でWebを一周:クロムミウムオートメーションによるスケーラブルなフィンガープリント by Isaac Dawson
[CB16] 80時間でWebを一周:クロムミウムオートメーションによるスケーラブルなフィンガープリント by Isaac Dawson[CB16] 80時間でWebを一周:クロムミウムオートメーションによるスケーラブルなフィンガープリント by Isaac Dawson
[CB16] 80時間でWebを一周:クロムミウムオートメーションによるスケーラブルなフィンガープリント by Isaac DawsonCODE BLUE
 
Drupal Efficiency - Coding, Deployment, Scaling
Drupal Efficiency - Coding, Deployment, ScalingDrupal Efficiency - Coding, Deployment, Scaling
Drupal Efficiency - Coding, Deployment, Scalingsmattoon
 
OSCP Preparation Guide @ Infosectrain
OSCP Preparation Guide @ InfosectrainOSCP Preparation Guide @ Infosectrain
OSCP Preparation Guide @ InfosectrainInfosecTrain
 
FIWARE Wednesday Webinars - Short Term History within Smart Systems
FIWARE Wednesday Webinars - Short Term History within Smart SystemsFIWARE Wednesday Webinars - Short Term History within Smart Systems
FIWARE Wednesday Webinars - Short Term History within Smart SystemsFIWARE
 
Building ContinuousIntegration with Virtuozzo DevOps
Building ContinuousIntegration with Virtuozzo DevOpsBuilding ContinuousIntegration with Virtuozzo DevOps
Building ContinuousIntegration with Virtuozzo DevOpsVirtuozzo
 
Drupal Efficiency using open source technologies from Sun
Drupal Efficiency using open source technologies from SunDrupal Efficiency using open source technologies from Sun
Drupal Efficiency using open source technologies from Sunsmattoon
 
Adriano Di Luzio - Davvy - PyconSEI Talk
Adriano Di Luzio - Davvy - PyconSEI TalkAdriano Di Luzio - Davvy - PyconSEI Talk
Adriano Di Luzio - Davvy - PyconSEI Talkaldur999
 
WebSocket Perspectives 2015 - Clouds, Streams, Microservices and WoT
WebSocket Perspectives 2015 - Clouds, Streams, Microservices and WoTWebSocket Perspectives 2015 - Clouds, Streams, Microservices and WoT
WebSocket Perspectives 2015 - Clouds, Streams, Microservices and WoTFrank Greco
 
HTML5 on Mobile
HTML5 on MobileHTML5 on Mobile
HTML5 on MobileAdam Lu
 
Scaleable PHP Applications in Kubernetes
Scaleable PHP Applications in KubernetesScaleable PHP Applications in Kubernetes
Scaleable PHP Applications in KubernetesRobert Lemke
 
Using aphace-as-proxy-server
Using aphace-as-proxy-serverUsing aphace-as-proxy-server
Using aphace-as-proxy-serverHARRY CHAN PUTRA
 

Similaire à HTTP2 (20)

OWASP Top 10 - Checkmarx Presentation at Polytechnic Institute of Cávado and Ave
OWASP Top 10 - Checkmarx Presentation at Polytechnic Institute of Cávado and AveOWASP Top 10 - Checkmarx Presentation at Polytechnic Institute of Cávado and Ave
OWASP Top 10 - Checkmarx Presentation at Polytechnic Institute of Cávado and Ave
 
gofortution
gofortutiongofortution
gofortution
 
20190516 web security-basic
20190516 web security-basic20190516 web security-basic
20190516 web security-basic
 
V2 peter-lubbers-sf-jug-websocket
V2 peter-lubbers-sf-jug-websocketV2 peter-lubbers-sf-jug-websocket
V2 peter-lubbers-sf-jug-websocket
 
Web scale infrastructures with kubernetes and flannel
Web scale infrastructures with kubernetes and flannelWeb scale infrastructures with kubernetes and flannel
Web scale infrastructures with kubernetes and flannel
 
Website Testing Practices
Website Testing PracticesWebsite Testing Practices
Website Testing Practices
 
[CB16] 80時間でWebを一周:クロムミウムオートメーションによるスケーラブルなフィンガープリント by Isaac Dawson
[CB16] 80時間でWebを一周:クロムミウムオートメーションによるスケーラブルなフィンガープリント by Isaac Dawson[CB16] 80時間でWebを一周:クロムミウムオートメーションによるスケーラブルなフィンガープリント by Isaac Dawson
[CB16] 80時間でWebを一周:クロムミウムオートメーションによるスケーラブルなフィンガープリント by Isaac Dawson
 
Drupal Efficiency - Coding, Deployment, Scaling
Drupal Efficiency - Coding, Deployment, ScalingDrupal Efficiency - Coding, Deployment, Scaling
Drupal Efficiency - Coding, Deployment, Scaling
 
OSCP Preparation Guide @ Infosectrain
OSCP Preparation Guide @ InfosectrainOSCP Preparation Guide @ Infosectrain
OSCP Preparation Guide @ Infosectrain
 
2016 03 15_biological_databases_part4
2016 03 15_biological_databases_part42016 03 15_biological_databases_part4
2016 03 15_biological_databases_part4
 
FIWARE Wednesday Webinars - Short Term History within Smart Systems
FIWARE Wednesday Webinars - Short Term History within Smart SystemsFIWARE Wednesday Webinars - Short Term History within Smart Systems
FIWARE Wednesday Webinars - Short Term History within Smart Systems
 
Building ContinuousIntegration with Virtuozzo DevOps
Building ContinuousIntegration with Virtuozzo DevOpsBuilding ContinuousIntegration with Virtuozzo DevOps
Building ContinuousIntegration with Virtuozzo DevOps
 
URL Design
URL DesignURL Design
URL Design
 
A practitioner's tale on clouds
A practitioner's tale on cloudsA practitioner's tale on clouds
A practitioner's tale on clouds
 
Drupal Efficiency using open source technologies from Sun
Drupal Efficiency using open source technologies from SunDrupal Efficiency using open source technologies from Sun
Drupal Efficiency using open source technologies from Sun
 
Adriano Di Luzio - Davvy - PyconSEI Talk
Adriano Di Luzio - Davvy - PyconSEI TalkAdriano Di Luzio - Davvy - PyconSEI Talk
Adriano Di Luzio - Davvy - PyconSEI Talk
 
WebSocket Perspectives 2015 - Clouds, Streams, Microservices and WoT
WebSocket Perspectives 2015 - Clouds, Streams, Microservices and WoTWebSocket Perspectives 2015 - Clouds, Streams, Microservices and WoT
WebSocket Perspectives 2015 - Clouds, Streams, Microservices and WoT
 
HTML5 on Mobile
HTML5 on MobileHTML5 on Mobile
HTML5 on Mobile
 
Scaleable PHP Applications in Kubernetes
Scaleable PHP Applications in KubernetesScaleable PHP Applications in Kubernetes
Scaleable PHP Applications in Kubernetes
 
Using aphace-as-proxy-server
Using aphace-as-proxy-serverUsing aphace-as-proxy-server
Using aphace-as-proxy-server
 

Plus de Mateus Prado

DevOps Behind the Scenes
DevOps Behind the ScenesDevOps Behind the Scenes
DevOps Behind the ScenesMateus Prado
 
DevOps Toolkit - DevOps Day Salvador
DevOps Toolkit - DevOps Day SalvadorDevOps Toolkit - DevOps Day Salvador
DevOps Toolkit - DevOps Day SalvadorMateus Prado
 
Infra Agil: How the Ops teams delivery and operate the infrastructures in the...
Infra Agil: How the Ops teams delivery and operate the infrastructures in the...Infra Agil: How the Ops teams delivery and operate the infrastructures in the...
Infra Agil: How the Ops teams delivery and operate the infrastructures in the...Mateus Prado
 
Projetos e estruturação de ambientes de Data Center
Projetos e estruturação de ambientes de Data CenterProjetos e estruturação de ambientes de Data Center
Projetos e estruturação de ambientes de Data CenterMateus Prado
 
DevOps: ready for takeoff?
DevOps: ready for takeoff?DevOps: ready for takeoff?
DevOps: ready for takeoff?Mateus Prado
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices ArchitectureMateus Prado
 
DevOps - Como remover barreiras para a adoção?
DevOps - Como remover barreiras para a adoção?DevOps - Como remover barreiras para a adoção?
DevOps - Como remover barreiras para a adoção?Mateus Prado
 

Plus de Mateus Prado (9)

DevOps Behind the Scenes
DevOps Behind the ScenesDevOps Behind the Scenes
DevOps Behind the Scenes
 
DevOps Toolkit - DevOps Day Salvador
DevOps Toolkit - DevOps Day SalvadorDevOps Toolkit - DevOps Day Salvador
DevOps Toolkit - DevOps Day Salvador
 
Infra Agil: How the Ops teams delivery and operate the infrastructures in the...
Infra Agil: How the Ops teams delivery and operate the infrastructures in the...Infra Agil: How the Ops teams delivery and operate the infrastructures in the...
Infra Agil: How the Ops teams delivery and operate the infrastructures in the...
 
DevOps Toolkit
DevOps ToolkitDevOps Toolkit
DevOps Toolkit
 
Projetos e estruturação de ambientes de Data Center
Projetos e estruturação de ambientes de Data CenterProjetos e estruturação de ambientes de Data Center
Projetos e estruturação de ambientes de Data Center
 
DevOps: ready for takeoff?
DevOps: ready for takeoff?DevOps: ready for takeoff?
DevOps: ready for takeoff?
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 
Microservices
MicroservicesMicroservices
Microservices
 
DevOps - Como remover barreiras para a adoção?
DevOps - Como remover barreiras para a adoção?DevOps - Como remover barreiras para a adoção?
DevOps - Como remover barreiras para a adoção?
 

Dernier

Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 

Dernier (20)

Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 

HTTP2

  • 1. HOW IT IS CHANGING WEB PERFORMANCE HTTP/2 MATEUS PRADO SOLUTIONS ARCHITECT AT SARAIVA
  • 2. HTTP2 AGENDA ▸ History ▸ HTTP nowadays ▸ Improvements ▸ SPDY and HTTP2 ▸ Security
  • 3. $WHOAMI MATEUS PRADO ▸ Software Developer, architect and systems engineer. ▸ I like software, hardware, cloud computing and airplanes. Web Master - IT Instructor - Software Developer - Systems Engineer - DevOps - Architect
  • 6. HISTORY HYPERTEXT TRANSFER PROTOCOL “The Hypertext Transfer Protocol (HTTP) is an application protocol for distributed, collaborative, hypermedia information systems.[1] HTTP is the foundation of data communication for the World Wide Web. Hypertext is structured text that uses logical links (hyperlinks) between nodes containing text. HTTP is the protocol to exchange or transfer hypertext.” - wikipedia.org
  • 7.
  • 8. HTTP/0.9 HTTP/1.0 HTTP/1.1 1991 1996 1999 ‣ Images ‣ POST method ‣ Status Code ‣ Compress, gzip‣ Text ‣ Request ‣ Response
  • 11. HTTP1.1 HTTP NOWADAYS ‣ IMAGES, FONTS, CSS, JS ‣ 100 REQUEST ‣ MOBILE CONNECTIONS, LATENCY ADDS UP ‣ LARGER HEADERS ‣ X-HEADER
  • 13. Client Server KEEP-ALIVE TCP Connection HEADER Connection: keep-alive Request Response HEADER Connection: keep-alive
  • 15.
  • 17. HTTP1.1 CONNECTIONS ‣ REQUEST AND RESPONSE ON A CONNECTION ‣ MULTIPLE CONNECTIONS TO RENDER PAGE ‣ SCHEDULING AND PRIORITY
  • 18. HTTP1.1 REQUESTS ‣ HTTP CACHING HEADER ‣ HACKS CONTENT
  • 19. HTTP1.1 HTTP CACHING HTTP/1.1 200 OK CACHE-CONTROL: NO-TRANSFORM,PUBLIC,MAX-AGE=300,S-MAXAGE=900 CONTENT-TYPE: TEXT/HTML; CHARSET=UTF-8 DATE: MON, 29 APR 2013 16:38:15 GMT ETAG: "BBEA5DB7E1785119A7F94FDD504C546E" LAST-MODIFIED: SAT, 27 APR 2013 00:44:54 GMT SERVER: AMAZONS3 VARY: ACCEPT-ENCODING X-CACHE: HIT
  • 20. HTTP1.1 HACKS ‣ MINIFY AND COMPRESS ‣ CSS SPRITES ‣ DATA URIS ‣ CSS AND JS TOGETHER
  • 22. // The -is- object is used to identify the browser. Every browser edition // identifies itself, but there is no standard way of doing it, and some of // the identification is deceptive. This is because the authors of web // browsers are liars. For example, Microsoft's IE browsers claim to be // Mozilla 4. Netscape 6 claims to be version 5. var is = { ie: navigator.appName == 'Microsoft Internet Explorer', java: navigator.javaEnabled(), ns: navigator.appName == 'Netscape', ua: navigator.userAgent.toLowerCase(), version: parseFloat(navigator.appVersion.substr(21)) || parseFloat(navigator.appVersion), win: navigator.platform == 'Win32' } is.mac = is.ua.indexOf('mac') >= 0; if (is.ua.indexOf('opera') >= 0) { is.ie = is.ns = false; is.opera = true; } if (is.ua.indexOf('gecko') >= 0) { is.ie = is.ns = false; is.gecko = true; } var is={ie:navigator.appName=='Microsoft Internet Explorer',java:navigator.javaEnabled(),ns:n avigator.appName=='Netscape',ua:navigator.u serAgent.toLowerCase(),version:parseFloat(n avigator.appVersion.substr(21))|| parseFloat(navigator.appVersion),win:naviga tor.platform=='Win32'} is.mac=is.ua.indexOf('mac')>=0;if(is.ua.ind exOf('opera')>=0) {is.ie=is.ns=false;is.opera=true;} if(is.ua.indexOf('gecko')>=0) {is.ie=is.ns=false;is.gecko=true;} before after
  • 24. GET /encrypted-area HTTP/1.1 Host: www.example.com Accept-Encoding: gzip, deflate HTTP/1.1 200 OK Date: mon, 29 Feb 2016 22:38:34 GMT Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux) Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT Accept-Ranges: bytes Content-Length: 438 Connection: close Content-Type: text/html; charset=UTF-8 Content-Encoding: gzip REQUEST RESPONSE
  • 26. .facebook-ico, .plus-ico, .user-ico, … { background-image: url('../images/icons.png'); background-repeat: no-repeat; } .facebook-ico { height: 128px; background-position: -5px -5px; } .user-ico { height: 135px; background-position: -5px -143px; } .cms-ico { height: 147px; background-position: -5px -288px; } ...
  • 28. data:[<MIME-type>][;charset=<encoding>][;base64],<data> <img width="64" height="69" alt="Treehouse Logo" src="data:image/ png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABFCAYAA AD6pOBtAAAABmJLR0QA/wD/AP +gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3g MbBwwfAKopzQAAEfdJREFUeNrVW3uUHFWZ...">
  • 29. HTTP1.1 LOAD FASTER ‣ PUT STYLESHEETS AT THE TOP ‣ PUT SCRIPTS AT THE BOTTOM
  • 31. <html> <head> <link rel="stylesheet" type="text/css" href="mystyle.css"> </head> <body> </body> </html>
  • 34. <html> <head> <link rel="stylesheet" type="text/css" href=“mystyle.css"> </head> <body> </body> <script src=“myscripts.js" defer></script> </html>
  • 36. 2009-2015 SPDY DISCONTINUED “SPDY (pronounced speedy)[1] is an open networking protocol developed primarily at Google for transporting web content.[1] SPDY manipulates HTTP traffic, with particular goals of reducing web page load latency and improving web security. SPDY achieves reduced latency through compression, multiplexing, and prioritization,[1] although this depends on a combination of network and website deployment conditions. [2][3][4] The name "SPDY" is a trademark[5] of Google and is not an acronym.[6]” - wikipedia.org
  • 37. HTTP/2 HOW IT AFFECT USERS? ‣ PERFORMANCE ‣ SECURITY*
  • 39. LATENCY NETWORK AND SERVER RESOURCE USAGE
  • 42. REQUEST EXAMPLE HTTP/1.1 GET / HTTP/1.1 Host: www.saraiva.com.br Accept: text/html Accept-Encoding: gzip User-Agent User-Agent Mozilla/5.0 (Macintosh; Cache-Control: max-age=0 GET /assets/style.css HTTP/1.1 Host: www.saraiva.com.br Accept: text/html Accept-Encoding: gzip User-Agent User-Agent Mozilla/5.0 (Macintosh; Cache-Control: max-age=0
  • 43. HPACK HTTP/2 :method: GET :scheme: http :host: www.saraiva.com.br :path: /index.html accept-encoding: gzip user-agent: Mozilla/5.0 (Macintosh; cache-control: max-age=0 :path: /assets/style.css :path /images/saraiva-logo.png :host: cdn.saraiva.com.br :path: /beacon/track.jpeg :host: beacon.saraiva.com.br cache-control: private, max-age=0, no-cache
  • 45. Client Server SERVER PUSH index.html TCP Connection index.html style.css application.js logo.svg
  • 46.
  • 47. <head><script async="true" type="text/javascript" src="http://widget.criteo.com/event?a=14416&amp;v=3.6.1&amp;p0=e%3Dce%26m%3D%255Bmateus %252540mateusprado.com%255D%26h%3Dnone&amp;p1=e%3Dexd%26site_type%3Dd&amp;p2=e%3Dvh&amp;p3=e%3Ddis&amp;adce=1" data-owner="criteo-tag"></script> <title>Saraiva.com.br: Livros, Tablets, Blu-Ray, Eletrônicos, Notebooks, Smartphones e mais.</title> <script>window.chaordic_meta = {"page":{"name":"home","timestamp":new Date()}}</script> <script async="" defer="" src="//static.chaordicsystems.com/static/loader.js" data-initialize="false" data-apikey="saraiva-v5"></script> <link rel="stylesheet" type="text/css" href="http://www.saraiva.com.br/skin/frontend/saraiva/saraiva/css/styles.css?cache=MjAxNjAyMTE=" media="all"> <link rel="stylesheet" type="text/css" href="http://www.saraiva.com.br/skin/frontend/saraiva/saraiva/css/footer.css?cache=MjAxNjAyMTE=" media="all"> <link rel="stylesheet" type="text/css" href="http://www.saraiva.com.br/skin/frontend/saraiva/saraiva/css/responsive.css?cache=MjAxNjAyMTE=" media="all"> <link rel="stylesheet" type="text/css" href="http://www.saraiva.com.br/skin/frontend/saraiva/saraiva/css/medias_queries.css?cache=MjAxNjAyMTE=" media="all"> <link rel="stylesheet" type="text/css" href="http://www.saraiva.com.br/skin/frontend/saraiva/default/onsale/css/onsale_label.css?cache=MjAxNjAyMTE=" media="all"> <link rel="stylesheet" type="text/css" href="http://www.saraiva.com.br/skin/frontend/saraiva/saraiva/apptha-reviews/css/amazereviews.css?cache=MjAxNjAyMTE=" media="all"> <link rel="stylesheet" type="text/css" href="http://www.saraiva.com.br/skin/frontend/base/default/saraiva/jplayer/main.css?cache=MjAxNjAyMTE=" media="all"> <link rel="stylesheet" type="text/css" href="http://www.saraiva.com.br/skin/frontend/saraiva/responsive/css/structure/menu.css?cache=MjAxNjAyMTE=" media="all"> <link rel="stylesheet" type="text/css" href="http://www.saraiva.com.br/skin/frontend/base/default/saraiva/swiper/idangerous.swiper.css?cache=MjAxNjAyMTE=" media="all"> <script type="text/javascript" src="http://www.saraiva.com.br/js/prototype/prototype.js?cache=MjAxNjAyMTE="></script> <script type="text/javascript" src="http://www.saraiva.com.br/js/prototype/validation.js?cache=MjAxNjAyMTE="></script> <script type="text/javascript" src="http://www.saraiva.com.br/js/scriptaculous/effects.js?cache=MjAxNjAyMTE="></script> <script type="text/javascript" src="http://www.saraiva.com.br/js/varien/js.js?cache=MjAxNjAyMTE="></script>
  • 49. HTTP/2 BINARY ‣ MORE EFFICIENT TO PARSE ‣ COMPACT “ON THE WIRE” ‣ LESS ERROR-PRONE ‣ WHITESPACE HANDLING, CAPITALIZATION, LINE ENDINGS
  • 50. Four different ways to parse a message in HTTP/1.1 in HTTP/2 there’s just one code path
  • 52.
  • 53. SECURITY SSL & TLS ‣ 13,2% SSL 2.0 - RFC6176 DEFICIENCIES ‣ 42,3% SSL 3.0 - KILLED BY THE POODLE ATTACK
 ‣ 99,7% TLS 1.0 - BEAST ATTACK ‣ 52,2% TLS 1.1 ‣ 58.1% TLS 1.2
  • 54.
  • 55. HTTP/2 IS USED BY 6.6% OF ALL THE WEBSITES.
  • 56.
  • 57. THANK YOU! REFERENCES ▸ https://http2.github.io ▸ httpwg.org ▸ The Internet Engineering 
 Task Force (IETF®) ▸ HTTP/2 - RFC7540 ▸ HPACK - RFC7541 TWITTER: @MATEUSPRADO HANGOUT: MATEUSH.PRADO@GMAIL.COM