SlideShare a Scribd company logo
1 of 29
HTTP1.1/2
SPECIFICATIONS OVERVIEW, METHODS AND IMPORTANT CHANGES
Andrew Muntian, March 2015
Agenda
 HTTP1.1
 Introduction
 Request
 Request methods
 Response
 Problems and workarounds
 HTTP2
 Two words about SPDY
 Concepts
 Important things
So, what’s HTTP?
The Hypertext Transfer Protocol (HTTP) is an application protocol for
distributed, collaborative, hypermedia information systems.
HTTP is the foundation of data communication for the WWW.
Hypertext is structured text that uses logical links (hyperlinks) between
nodes containing text.
HTTP is the protocol to exchange or transfer hypertext.
Let’s look at the simple request
GET /index.php HTTP1.1
Host: astoundcommerce.com
Method Request URI HTTP version
Request header(s)
Other request headers
Name Description Example
Accept
Content-Types that are acceptable for
the response
Accept: text/plain
Accept-Charset Character sets that are acceptable Accept-Charset: utf-8
Accept-Encoding List of acceptable encodings
Accept-Encoding: gzip,
deflate
Cookie
An HTTP cookie previously sent by the
server with Set-Cookie
Cookie: $Version=1;
Skin=new;
User-Agent The user agent string of the user agent
User-Agent: Mozilla/5.0
(X11; Linux x86_64;
rv:12.0)
Request methods
GET
The GET method means retrieve whatever information (in the form of
an entity) is identified by the Request-URI.
HEAD
The HEAD method is identical to GET except that the server MUST NOT
return a message-body in the response.
The meta-information contained in the HTTP headers in response to a
HEAD request SHOULD be identical to the information sent in response to a
GET request.
POST
The POST method is used to request that the origin server accept the
entity enclosed in the request as a new subordinate of the resource
identified by the Request-URI in the Request-Line.
DELETE
The DELETE method requests that the origin server delete the resource
identified by the Request-URI.
OPTIONS
The OPTIONS method represents a request for information about the
communication options available on the request/response chain
identified by the Request-URI.
TRACE
The TRACE method is used to invoke a remote, application-layer loop-
back of the request message.
CONNECT
This specification reserves the method name CONNECT for use with a proxy that
can dynamically switch to being a tunnel.
It’s time to response
HTTP version Response code
Headers
Response body
Response codes
 1xx Informational
Ex. 101 Switching Protocols
 2xx Success
Ex. 200 OK
 3xx Redirection
Ex. 304 Not Modified
 4xx Client Error
Ex. 404 Not Found
 5xx Server Error
Ex. 502 Bad Gateway
Response headers
Name Description Example
Content-Type
The MIME type of this
content
Content-Type: text/html;
charset=utf-8
Date
The date and time that the
message was sent
Date: Tue, 5 Nov 1994
08:12:31 GMT
Set-Cookie An HTTP cookie
Set-Cookie:
UserID=JohnDoe; Max-
Age=3600; Version=1
Server A name for the server Server: Apache/2.4.1 (Unix)
Content-Length
The length of the response
body in octets
Content-Length: 348
Problems of HTTP1.1
HTTP 1.1 is huge
When HTTP was created and thrown out into the world it was probably
perceived as a rather simple and straightforward protocol, but time
has proved that to be false.
HTTP 1.0 in RFC 1945 is a 60 page specification released in 1996.
RFC 2616 that describes HTTP 1.1 was released only three years later in
1999 and had grown significantly to 176 pages.
Transfer sizes and number of
objects
Over the years the amount of data that needs to be retrieved has
gradually risen up to and above 1.9MB. Average over a hundred
individual resources are required to display each page.
77
100
2011 2015
OBJECTS
725
1900
2011 2015
TRANSFER SIZE (KB)
httparchive.org
Head of line blocking
Workarounds “Spriting”
“Sharding”
Concatenation
A big site can end up with a lot of different JavaScript files.
Front-end tools will help developers merge everyone of them into a
single huge lump so that the browser will get a single big one instead of
dozens of smaller files.
“Inlining”
URLs embedded in the CSS file. This has similar benefits and drawbacks
as the “spriting” case.
.icon1 {
background: url(data:image/png;base64,<data>) no-repeat;
}
.icon2 {
background: url(data:image/png;base64,<data>) no-repeat;
}
HTTP2
SPDY
SPDY (speedy) is a protocol that was developed and spearheaded by
Google.
When the HTTPbis group decided it was time to start working on http2,
SPDY had already proven that it was a working concept.
The http2 work then subsequently started off from the SPDY/3 draft that
was basically made into the http2 draft-00 with a little search and
replace.
HTTP2 main concepts
 It has to maintain HTTP paradigms;
 http:// and https:// URLs cannot be changed;
 Proxy HTTP1 servers and clients to HTTP2;
 Subsequently, proxies must be able to map HTTP2 features to HTTP
1.1 clients 1:1;
 Remove or reduce optional parts from the protocol;
 No more minor version.
HTTP2 and TLS
SPDY is only done over TLS and there's been a strong push for making
TLS mandatory for http2 but it didn't get consensus and http2 will ship
with TLS as optional.
However, two prominent implementers have stated clearly that they
will only implement http2 over TLS: the Mozilla Firefox lead and the
Google Chrome lead.
Two of the leading web browsers of today.
Binary
HTTP2 is a binary protocol.
Figuring out the start and the end of frames is one of the really
complicated things in HTTP 1.1 and actually in text based protocols in
general.
By moving away from optional white spaces and different ways to
write the same thing, implementations become simpler.
Binary frames
HTTP2 sends binary frames. There are different frame types that can be
sent and they all have the same setup: Type, Length, Flags, Stream
Identifier and frame payload.
Multiplexed streams
The Stream Identifier mentioned in the previous section describing the
binary frame format, makes each frame sent over HTTP2 get associated
with a “stream”.
Multiplexing the streams means that packages from many streams are
mixed over the same connection. Two (or more) individual trains of data
are made into a single one and then split up again on the other side.
Thank you!
Bibliography
 HTTP1.1 specification (RFC 2616)
 http://daniel.haxx.se/http2
 Wiki
 http://habrahabr.ru/
 http://httparchive.org/
 https://http2.github.io/

More Related Content

What's hot

HTTP fundamentals for developers
HTTP fundamentals for developersHTTP fundamentals for developers
HTTP fundamentals for developersMario Cardinal
 
Web (HTTP) request to response life cycle
Web (HTTP) request to response life cycleWeb (HTTP) request to response life cycle
Web (HTTP) request to response life cycleGopakumar Kunduveetil
 
HyperText Transfer Protocol
HyperText Transfer ProtocolHyperText Transfer Protocol
HyperText Transfer Protocolponduse
 
Http request and http response
Http request and http responseHttp request and http response
Http request and http responseNuha Noor
 
HTTP request and response
HTTP request and responseHTTP request and response
HTTP request and responseSahil Agarwal
 
Http request&response by Vignesh 15 MAR 2014
Http request&response by Vignesh 15 MAR 2014Http request&response by Vignesh 15 MAR 2014
Http request&response by Vignesh 15 MAR 2014Navaneethan Naveen
 
HTTP Definition and Basics.
HTTP Definition and Basics.HTTP Definition and Basics.
HTTP Definition and Basics.Halah Salih
 
DNS Related Technical Terms
DNS Related Technical TermsDNS Related Technical Terms
DNS Related Technical TermsHTS Hosting
 
Webservice for android ppt
Webservice for android pptWebservice for android ppt
Webservice for android pptsantosh lamba
 
INFT132 093 03 Web Concepts
INFT132 093 03 Web ConceptsINFT132 093 03 Web Concepts
INFT132 093 03 Web ConceptsMichael Rees
 
Realtime applications with EmberJS and XMPP
Realtime applications with EmberJS and XMPPRealtime applications with EmberJS and XMPP
Realtime applications with EmberJS and XMPPrjvegasf
 

What's hot (20)

HTTP fundamentals for developers
HTTP fundamentals for developersHTTP fundamentals for developers
HTTP fundamentals for developers
 
Web (HTTP) request to response life cycle
Web (HTTP) request to response life cycleWeb (HTTP) request to response life cycle
Web (HTTP) request to response life cycle
 
HyperText Transfer Protocol
HyperText Transfer ProtocolHyperText Transfer Protocol
HyperText Transfer Protocol
 
Web technologies: HTTP
Web technologies: HTTPWeb technologies: HTTP
Web technologies: HTTP
 
HTTP & WWW
HTTP & WWWHTTP & WWW
HTTP & WWW
 
Web Terminology
Web TerminologyWeb Terminology
Web Terminology
 
HTTP
HTTPHTTP
HTTP
 
Http
HttpHttp
Http
 
Http request and http response
Http request and http responseHttp request and http response
Http request and http response
 
Hypertext Transfer Protocol
Hypertext Transfer ProtocolHypertext Transfer Protocol
Hypertext Transfer Protocol
 
Introduction to HTTP
Introduction to HTTPIntroduction to HTTP
Introduction to HTTP
 
HTTP request and response
HTTP request and responseHTTP request and response
HTTP request and response
 
Http request&response by Vignesh 15 MAR 2014
Http request&response by Vignesh 15 MAR 2014Http request&response by Vignesh 15 MAR 2014
Http request&response by Vignesh 15 MAR 2014
 
What is SPDY
What is SPDYWhat is SPDY
What is SPDY
 
HTTP Definition and Basics.
HTTP Definition and Basics.HTTP Definition and Basics.
HTTP Definition and Basics.
 
DNS Related Technical Terms
DNS Related Technical TermsDNS Related Technical Terms
DNS Related Technical Terms
 
Webservice for android ppt
Webservice for android pptWebservice for android ppt
Webservice for android ppt
 
INFT132 093 03 Web Concepts
INFT132 093 03 Web ConceptsINFT132 093 03 Web Concepts
INFT132 093 03 Web Concepts
 
Realtime applications with EmberJS and XMPP
Realtime applications with EmberJS and XMPPRealtime applications with EmberJS and XMPP
Realtime applications with EmberJS and XMPP
 
Introduction About PHP
 Introduction About PHP Introduction About PHP
Introduction About PHP
 

Similar to HTTP1.1/2 overview

HTTPs Strict Transport Security
HTTPs    Strict Transport Security HTTPs    Strict Transport Security
HTTPs Strict Transport Security Gol D Roger
 
Web technology-guide
Web technology-guideWeb technology-guide
Web technology-guideSrihari
 
internet principles of operation By ZAK
internet principles of operation By ZAKinternet principles of operation By ZAK
internet principles of operation By ZAKTabsheer Hasan
 
Web programming by Najeeb ullahAzad(1)
Web programming by Najeeb ullahAzad(1)Web programming by Najeeb ullahAzad(1)
Web programming by Najeeb ullahAzad(1)azadmcs
 
PHP Training: Module 1
PHP Training: Module 1PHP Training: Module 1
PHP Training: Module 1hussulinux
 
Introduction to Basic Concepts in Web
Introduction to Basic Concepts in WebIntroduction to Basic Concepts in Web
Introduction to Basic Concepts in WebJussi Pohjolainen
 
Lecture 1 Introduction to Web Development.pptx
Lecture 1 Introduction to Web Development.pptxLecture 1 Introduction to Web Development.pptx
Lecture 1 Introduction to Web Development.pptxKevi20
 
1 web technologies
1 web technologies1 web technologies
1 web technologiesJalpesh Vasa
 
Distributed web based systems
Distributed web based systemsDistributed web based systems
Distributed web based systemsReza Gh
 
HTTPProtocol HTTPProtocol.pptHTTPProtocol.ppt
HTTPProtocol HTTPProtocol.pptHTTPProtocol.pptHTTPProtocol HTTPProtocol.pptHTTPProtocol.ppt
HTTPProtocol HTTPProtocol.pptHTTPProtocol.pptVietAnhNguyen337355
 
HTTP 프로토콜의 이해와 활용
HTTP 프로토콜의 이해와 활용HTTP 프로토콜의 이해와 활용
HTTP 프로토콜의 이해와 활용SangJin Kang
 
KMUTNB - Internet Programming 2/7
KMUTNB - Internet Programming 2/7KMUTNB - Internet Programming 2/7
KMUTNB - Internet Programming 2/7phuphax
 
Introducing HTTP/2
Introducing HTTP/2Introducing HTTP/2
Introducing HTTP/2Ido Flatow
 
Internet and Web Technology (CLASS-2) [HTTP & HTML]
Internet and Web Technology (CLASS-2) [HTTP & HTML]Internet and Web Technology (CLASS-2) [HTTP & HTML]
Internet and Web Technology (CLASS-2) [HTTP & HTML]Ayes Chinmay
 

Similar to HTTP1.1/2 overview (20)

Web
WebWeb
Web
 
HTTPs Strict Transport Security
HTTPs    Strict Transport Security HTTPs    Strict Transport Security
HTTPs Strict Transport Security
 
Web technology-guide
Web technology-guideWeb technology-guide
Web technology-guide
 
HTTP
HTTPHTTP
HTTP
 
Http protocol
Http protocolHttp protocol
Http protocol
 
Unit 02: Web Technologies (1/2)
Unit 02: Web Technologies (1/2)Unit 02: Web Technologies (1/2)
Unit 02: Web Technologies (1/2)
 
internet principles of operation By ZAK
internet principles of operation By ZAKinternet principles of operation By ZAK
internet principles of operation By ZAK
 
Web programming by Najeeb ullahAzad(1)
Web programming by Najeeb ullahAzad(1)Web programming by Najeeb ullahAzad(1)
Web programming by Najeeb ullahAzad(1)
 
PHP Training: Module 1
PHP Training: Module 1PHP Training: Module 1
PHP Training: Module 1
 
Introduction to Basic Concepts in Web
Introduction to Basic Concepts in WebIntroduction to Basic Concepts in Web
Introduction to Basic Concepts in Web
 
Lecture 1 Introduction to Web Development.pptx
Lecture 1 Introduction to Web Development.pptxLecture 1 Introduction to Web Development.pptx
Lecture 1 Introduction to Web Development.pptx
 
1 web technologies
1 web technologies1 web technologies
1 web technologies
 
SPDY.pdf
SPDY.pdfSPDY.pdf
SPDY.pdf
 
Distributed web based systems
Distributed web based systemsDistributed web based systems
Distributed web based systems
 
HTTPProtocol HTTPProtocol.pptHTTPProtocol.ppt
HTTPProtocol HTTPProtocol.pptHTTPProtocol.pptHTTPProtocol HTTPProtocol.pptHTTPProtocol.ppt
HTTPProtocol HTTPProtocol.pptHTTPProtocol.ppt
 
HTTP 프로토콜의 이해와 활용
HTTP 프로토콜의 이해와 활용HTTP 프로토콜의 이해와 활용
HTTP 프로토콜의 이해와 활용
 
KMUTNB - Internet Programming 2/7
KMUTNB - Internet Programming 2/7KMUTNB - Internet Programming 2/7
KMUTNB - Internet Programming 2/7
 
Api 101
Api 101Api 101
Api 101
 
Introducing HTTP/2
Introducing HTTP/2Introducing HTTP/2
Introducing HTTP/2
 
Internet and Web Technology (CLASS-2) [HTTP & HTML]
Internet and Web Technology (CLASS-2) [HTTP & HTML]Internet and Web Technology (CLASS-2) [HTTP & HTML]
Internet and Web Technology (CLASS-2) [HTTP & HTML]
 

Recently uploaded

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 

Recently uploaded (20)

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 

HTTP1.1/2 overview

  • 1. HTTP1.1/2 SPECIFICATIONS OVERVIEW, METHODS AND IMPORTANT CHANGES Andrew Muntian, March 2015
  • 2. Agenda  HTTP1.1  Introduction  Request  Request methods  Response  Problems and workarounds  HTTP2  Two words about SPDY  Concepts  Important things
  • 3. So, what’s HTTP? The Hypertext Transfer Protocol (HTTP) is an application protocol for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the WWW. Hypertext is structured text that uses logical links (hyperlinks) between nodes containing text. HTTP is the protocol to exchange or transfer hypertext.
  • 4. Let’s look at the simple request GET /index.php HTTP1.1 Host: astoundcommerce.com Method Request URI HTTP version Request header(s)
  • 5. Other request headers Name Description Example Accept Content-Types that are acceptable for the response Accept: text/plain Accept-Charset Character sets that are acceptable Accept-Charset: utf-8 Accept-Encoding List of acceptable encodings Accept-Encoding: gzip, deflate Cookie An HTTP cookie previously sent by the server with Set-Cookie Cookie: $Version=1; Skin=new; User-Agent The user agent string of the user agent User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0)
  • 7. GET The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI. HEAD The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response. The meta-information contained in the HTTP headers in response to a HEAD request SHOULD be identical to the information sent in response to a GET request.
  • 8. POST The POST method is used to request that the origin server accept the entity enclosed in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line. DELETE The DELETE method requests that the origin server delete the resource identified by the Request-URI.
  • 9. OPTIONS The OPTIONS method represents a request for information about the communication options available on the request/response chain identified by the Request-URI. TRACE The TRACE method is used to invoke a remote, application-layer loop- back of the request message. CONNECT This specification reserves the method name CONNECT for use with a proxy that can dynamically switch to being a tunnel.
  • 10. It’s time to response HTTP version Response code Headers Response body
  • 11. Response codes  1xx Informational Ex. 101 Switching Protocols  2xx Success Ex. 200 OK  3xx Redirection Ex. 304 Not Modified  4xx Client Error Ex. 404 Not Found  5xx Server Error Ex. 502 Bad Gateway
  • 12. Response headers Name Description Example Content-Type The MIME type of this content Content-Type: text/html; charset=utf-8 Date The date and time that the message was sent Date: Tue, 5 Nov 1994 08:12:31 GMT Set-Cookie An HTTP cookie Set-Cookie: UserID=JohnDoe; Max- Age=3600; Version=1 Server A name for the server Server: Apache/2.4.1 (Unix) Content-Length The length of the response body in octets Content-Length: 348
  • 14. HTTP 1.1 is huge When HTTP was created and thrown out into the world it was probably perceived as a rather simple and straightforward protocol, but time has proved that to be false. HTTP 1.0 in RFC 1945 is a 60 page specification released in 1996. RFC 2616 that describes HTTP 1.1 was released only three years later in 1999 and had grown significantly to 176 pages.
  • 15. Transfer sizes and number of objects Over the years the amount of data that needs to be retrieved has gradually risen up to and above 1.9MB. Average over a hundred individual resources are required to display each page. 77 100 2011 2015 OBJECTS 725 1900 2011 2015 TRANSFER SIZE (KB) httparchive.org
  • 16. Head of line blocking
  • 19. Concatenation A big site can end up with a lot of different JavaScript files. Front-end tools will help developers merge everyone of them into a single huge lump so that the browser will get a single big one instead of dozens of smaller files.
  • 20. “Inlining” URLs embedded in the CSS file. This has similar benefits and drawbacks as the “spriting” case. .icon1 { background: url(data:image/png;base64,<data>) no-repeat; } .icon2 { background: url(data:image/png;base64,<data>) no-repeat; }
  • 21. HTTP2
  • 22. SPDY SPDY (speedy) is a protocol that was developed and spearheaded by Google. When the HTTPbis group decided it was time to start working on http2, SPDY had already proven that it was a working concept. The http2 work then subsequently started off from the SPDY/3 draft that was basically made into the http2 draft-00 with a little search and replace.
  • 23. HTTP2 main concepts  It has to maintain HTTP paradigms;  http:// and https:// URLs cannot be changed;  Proxy HTTP1 servers and clients to HTTP2;  Subsequently, proxies must be able to map HTTP2 features to HTTP 1.1 clients 1:1;  Remove or reduce optional parts from the protocol;  No more minor version.
  • 24. HTTP2 and TLS SPDY is only done over TLS and there's been a strong push for making TLS mandatory for http2 but it didn't get consensus and http2 will ship with TLS as optional. However, two prominent implementers have stated clearly that they will only implement http2 over TLS: the Mozilla Firefox lead and the Google Chrome lead. Two of the leading web browsers of today.
  • 25. Binary HTTP2 is a binary protocol. Figuring out the start and the end of frames is one of the really complicated things in HTTP 1.1 and actually in text based protocols in general. By moving away from optional white spaces and different ways to write the same thing, implementations become simpler.
  • 26. Binary frames HTTP2 sends binary frames. There are different frame types that can be sent and they all have the same setup: Type, Length, Flags, Stream Identifier and frame payload.
  • 27. Multiplexed streams The Stream Identifier mentioned in the previous section describing the binary frame format, makes each frame sent over HTTP2 get associated with a “stream”. Multiplexing the streams means that packages from many streams are mixed over the same connection. Two (or more) individual trains of data are made into a single one and then split up again on the other side.
  • 29. Bibliography  HTTP1.1 specification (RFC 2616)  http://daniel.haxx.se/http2  Wiki  http://habrahabr.ru/  http://httparchive.org/  https://http2.github.io/