Alessandro Nadalin | NAMSHI.com


http://end.of.the.road?
AGENDA

. History of HTTP
                    . Hidden features
. HTTP/2.0
                    . SPDY
HTTP/X.Y ?
Web development?
WWW



      Web development?
Clients

WWW



      Web development?
Clients

WWW



            Web development?



  Servers
Clients

WWW



            M2M   Web development?



  Servers
  Server
Clients

WWW



            M2M   Web development?



  Servers
                   Automation
Any user can easily
    interact with a
         Webpage.
( except my mom )
What about machines?
They need rules.
verbs




        They need rules.
verbs




        They need rules.

                    domains
verbs




         They need rules.
        workflows

                     domains
verbs

                    logic



         They need rules.
        workflows

                            domains
verbs

                    logic



         They need rules.
                             constraints

        workflows

                            domains
PROTOCOLS
HTTP/0.9
HTTP/0.9
    (1991)
HTTP/1.0
1996                   GET


Tim Berners-Lee

                  POST
                  separate connections



                                           HEAD   Roy Fielding
HTTP/1.1
PUT
Tim Berners-Lee    1996                   GET
                                                         TRACE
                         Domain Application Protocol
           PATCH
                   POST                   Roy Fielding
                   separate connections   DELET
                   OPTIONS
                                          HEAD
                                          E

     DIFF
EXPIRES     MAX-AGE
                 CACHE CHANNELS


                        CACHE 304 Not modified

              http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html
SCALABILITY
<feed xmlns="http://www.w3.org/2005/Atom"
   xmlns:cc="http://purl.org/syndication/cache-channel">
    <title>Invalidations for www.example.org</title>
    <id>http://admin.example.org/events/</id>
    <link rel="self"
     href="http://admin.example.org/events/current"/>
    <link rel="prev-archive"
     href="http://admin.example.org/events/archive/1234"/>
    <updated>2007-04-13T11:23:42Z</updated>
    <author>
       <name>Administrator</name>
       <email>web-admin@example.org</email>
    </author>
    <cc:precision>60</cc:precision>
    <cc:lifetime>2592000</cc:lifetime>
    <entry>
      <title>stale</title>
      <id>http://admin.example.org/events/1124</id>
      <updated>2007-04-13T11:23:42Z</updated>
      <link href="urn:uuid:50D3565C-97A8-40E1-A5C8-CFA070166FEF"/>
      <cc:stale/>
    </entry>
    <entry>
      <title>stale</title>
      <id>http://admin.example.org/events/1125</id>
      <updated>2007-04-13T10:31:01Z</updated>
      <link href="http://www.example.org/img/123.gif" type="image/gif"/>
      <link href="http://www.example.org/img/123.png" type="image/png"/>
      <cc:stale/>
    </entry>
GET /users/1           HTTP/1.1 200 Ok
  HTTP/1.1               Etag: 123abc
  Host: example.com



GET /users/1 HTTP/1.1     HTTP/1.1 304 Not
Host: example.com         Modified
If-None-Match: 123abc


POST /users/1 HTTP/1.1   HTTP/1.1 412
Host: example.com        Precondition Failed
Etag: 123abcdefgh
...
GET /users/1 HTTP/1.1   HTTP/1.1 200 Ok
Host: example.com       Cache-Control: max-age=60




GET /users/1 HTTP/1.1
Host: example.com
FOR FREE
and here are a few ways to do
so, using

         expiration

         validation

        invalidation
Expiration
GET / HTTP/1.1
Host: www.example.com
Expires: 0
GET / HTTP/1.1
Host: www.example.com
Expires: 0
GET / HTTP/1.1
Host: www.example.com
Expires: Tue, 15 Nov 1994 01:00 GMT
GET / HTTP/1.1
Host: www.example.com
Cache-Control: max-age=60, public
GET / HTTP/1.1
Host: www.example.com
Cache-Control: max-age=60, public
GET / HTTP/1.1
Host: www.example.com
Cache-Control: max-age=60, public

     Cacheable for 60 seconds
GET / HTTP/1.1
Host: www.example.com
Cache-Control: max-age=60, public

Cacheable by both local and shared caches
GET / HTTP/1.1
Host: www.example.com
Cache-Control: stale-if-error=600, stale-while-revalidate=600
GET / HTTP/1.1
Host: www.example.com
Cache-Control: stale-if-error=600, stale-while-revalidate=600




                         fault-tolerant
GET / HTTP/1.1
Host: www.example.com
Cache-Control: stale-if-error=600, stale-while-revalidate=600




                  available during downtime
GET / HTTP/1.1
Host: www.example.com
Cache-Control: stale-if-error=600, stale-while-revalidate=600




                available during revalidation
Validation
GET / HTTP/1.1
Host: www.example.
com
Etag: 1234
GET / HTTP/1.1
  Host: www.example.
  com
  Etag: 1234
an identifier for your response
Conditional requests

         GET / HTTP/1.1
         Host: www.example.
         com
         If-None-Match: 1234
the browsers asks you if it has been modified
Relax
Calculating an Etag is cheaper than generating a full MVC
                         response
HTTP/1.1 304 Not Modified
GET / HTTP/1.1
Host: www.example.com
Last-Modified: Tue, 15 Jan 2011 12:00:00 GMT
GET / HTTP/1.1
Host: www.example.com
Last-Modified: Tue, 15 Jan 2011 12:00:00 GMT


         tell the client about the latest change
Conditional requests

GET / HTTP/1.1
Host: www.example.com
If-Modified-Since: Tue, 15 Jan 2011 12:00:00 GMT



the client asks you if it has been modified since the last time
Relax
Calculating a date is cheaper than retrieving an entire object
HTTP/1.1 304 Not Modified
Invalidation
The web is not meant for invalidating data.

Server should not be able to keep clients' state, otherwise
                  they wont scale well.

That's why long-polling and endless connections haven't
         had big success dealing with caching.
but hey, you say
HTTP's cache fails when dealing with really dynamic
pages, because consumers will always have to hit the
  origin server, although a part of the page would be
         cacheable ( header and footer, for example )
Nope


       Nope
ESI was built for that
    http://www.w3.org/TR/esi-lang
HInclude was built for that
         http://mnot.github.com/hinclude/
So what does HTTP cache is meant to solve?
Less work
http://www.flickr.com/photos/snakphotography/5004775320/sizes/o/in/photostream/




  because the hard work is delegated to the browser/proxy
evolve
because cache is abstracted from the application
loose coupling
because caching is bound to the protocol, HTTP,
not to your implementation ( Sf, RoR, Django )
it all started
21
years
ago
Damn.
HTTP/2.0
Nothing to see here.
SPDY
HTTP colon slash slash: the end of the road?
http://dev.chromium.org/spdy/spdy-whitepaper
You're already using it
HTTP colon slash slash: the end of the road?
HTTP colon slash slash: the end of the road?
HTTP colon slash slash: the end of the road?
HTTP on steroids
Requests prioritization
Client   Server
Client   Server
Client   Server
Client   Server
Compression
Extended compression
Multiplexing
Client      Server




R/R model
Client      Server




R/R model
Client      Server




R/R model
Client       Server




Pipelining
Client       Server




Pipelining
Client        Server




Multiplexing
Client        Server




Multiplexing
Client        Server




Multiplexing
Server push
Result?
HTTP colon slash slash: the end of the road?
SPDY
HTTP

       SPDY
Not-so-side effect?
13 years later...
HTTP/2.0
HTTP colon slash slash: the end of the road?
Based on?
SPDY
http://lists.w3.org/Archives/Public/ietf-http-wg/2012OctDec/0004.html

    http://www.slideshare.net/mnot/what-http20-will-do-for-you
Which is based on?
HTTP/1.1
SPDY doesnt change the protocol,
it just changes the way messages are
        exchanged over the wire
Semantics are the same.
Workflows are the same.
Verbs are the same.
The interface is the same.
And HTTP/1.1 is based on?
HTTP/1.0
15
damn
years
Ago
PERIOD.
An architecture that lasts 20 years is possible.
( REST )
You?
Alex Nadalin
Alex Nadalin
    odino.org
Alex Nadalin
    odino.org
  @_odino_
Alex Nadalin
    odino.org
  @_odino_
Alex Nadalin
    odino.org
  @_odino_
Alex Nadalin
    odino.org   DXB
  @_odino_
Alex Nadalin
    odino.org   DXB
  @_odino_
We're hiring!
In Dubai.
In Dubai.

alex.nadalin@namshi.com
In Dubai.

alex.nadalin@namshi.com

       @_odino_
In Dubai.

alex.nadalin@namshi.com

       @_odino_

     TALK TO ME!

More Related Content

PPTX
Introduction to HTTP/2
PDF
HTTP/2 What's inside and Why
PPTX
HTTP/2 Introduction
PDF
HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0
PDF
HTTP2:新的机遇与挑战
PDF
HTTP 2.0 Why, How and When
PDF
What HTTP/2.0 Will Do For You
ODP
Zabbix 101 - Enterprise Monitoring doesn't have to suck
Introduction to HTTP/2
HTTP/2 What's inside and Why
HTTP/2 Introduction
HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0
HTTP2:新的机遇与挑战
HTTP 2.0 Why, How and When
What HTTP/2.0 Will Do For You
Zabbix 101 - Enterprise Monitoring doesn't have to suck

What's hot (20)

KEY
I got 99 problems, but ReST ain't one
PDF
HTTP/2 Comes to Java
PPTX
SPDY - or maybe HTTP2.0
PDF
HTTP/2 Update - FOSDEM 2016
PPTX
Introduction to HTTP/2
PDF
Devoxx Maroc 2015 HTTP 1, HTTP 2 and folks
PDF
HTTP/2 standard for video streaming
PPTX
HTTP/2 Changes Everything
PDF
HTTP Caching in Web Application
PDF
O'Reilly Fluent Conference: HTTP/1.1 vs. HTTP/2
ODP
Website releases made easy with the PEAR installer - Barcelona 2008
ODP
Website releases made easy with the PEAR installer, OSCON 2009
KEY
Php Power Tools
PDF
Web Server Deathmatch 2009 Erlang Factory Joe Williams
PPTX
Http caching basics
PDF
Open vpn server_linux
PDF
Configure Webserver & SSL secure & redirect in SuSE Linux Enterprise
PDF
SPDY and HTTP/2
PPTX
Web sockets in Java
PPT
香港六合彩
I got 99 problems, but ReST ain't one
HTTP/2 Comes to Java
SPDY - or maybe HTTP2.0
HTTP/2 Update - FOSDEM 2016
Introduction to HTTP/2
Devoxx Maroc 2015 HTTP 1, HTTP 2 and folks
HTTP/2 standard for video streaming
HTTP/2 Changes Everything
HTTP Caching in Web Application
O'Reilly Fluent Conference: HTTP/1.1 vs. HTTP/2
Website releases made easy with the PEAR installer - Barcelona 2008
Website releases made easy with the PEAR installer, OSCON 2009
Php Power Tools
Web Server Deathmatch 2009 Erlang Factory Joe Williams
Http caching basics
Open vpn server_linux
Configure Webserver & SSL secure & redirect in SuSE Linux Enterprise
SPDY and HTTP/2
Web sockets in Java
香港六合彩
Ad

Similar to HTTP colon slash slash: the end of the road? (20)

PDF
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San Francisco
PDF
REST in ( a mobile ) peace @ WHYMCA 05-21-2011
PPTX
Hypertext Transfer Protocol
PDF
distributing over the web
PDF
Caching in HTTP
PPT
21 Www Web Services
PPT
computer networking
PDF
Http Status Report
PDF
Hidden Gems in HTTP
PPTX
Web technologies: HTTP
PDF
PDF
Web Architectures - Web Technologies (1019888BNR)
PDF
RESTful Web Services
PDF
Principles of building effective REST API
PPT
internet applications
PPTX
Introduction to HTTP
PDF
HTTP In-depth
PPSX
Network basics
PPT
HTTP.ppt
PPT
HTTP (syper text transfer protocol)(6).ppt
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San Francisco
REST in ( a mobile ) peace @ WHYMCA 05-21-2011
Hypertext Transfer Protocol
distributing over the web
Caching in HTTP
21 Www Web Services
computer networking
Http Status Report
Hidden Gems in HTTP
Web technologies: HTTP
Web Architectures - Web Technologies (1019888BNR)
RESTful Web Services
Principles of building effective REST API
internet applications
Introduction to HTTP
HTTP In-depth
Network basics
HTTP.ppt
HTTP (syper text transfer protocol)(6).ppt
Ad

More from Alessandro Nadalin (20)

PDF
Spa, isomorphic and back to the server our journey with js @ frontend con po...
PDF
SPA, isomorphic and back to the server: our journey with JavaScript @ JsDay 2...
PDF
Scaling at Namshi @ Seamless Ecommerce Dubai 2017
PDF
Accelerated Mobile Pages @ Dubytes meetup Dec 2016 in Dubai
PDF
A tech team of ~10 @ Rocket Tech Summit 2016 in Berlin
PDF
React native in the wild @ Codemotion 2016 in Rome
PDF
Dockerize it! @ Codemotion 2016 in Rome
PDF
Deploying 3 times a day without a downtime @ Rocket Tech Summit in Berlin
PDF
Hey, I just met AngularJS, and this is crazy, so here’s my JavaScript, let’s ...
PDF
Don't screw it up: how to build durable web apis @ PHPDay 2014 in Verona (ITA)
PDF
Namshi in 2014: let's rock!
PDF
Angular js is the future. maybe. @ ConFoo 2014 in Montreal (CA)
PDF
OrientDB, the fastest document-based graph database @ Confoo 2014 in Montreal...
PDF
A Rocket Internet experience @ ForumPHP Paris 2013
PDF
Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San...
PDF
The rocket internet experience @ PHP.TO.START 2013 in Turin
PDF
GraphDB in PHP @ Codemotion 03/23/2012
PDF
REST in peace @ IPC 2012 in Mainz
PDF
The state of your own hypertext preprocessor
PDF
REST in peace @ Osidays 2011 India 11-21-2011
Spa, isomorphic and back to the server our journey with js @ frontend con po...
SPA, isomorphic and back to the server: our journey with JavaScript @ JsDay 2...
Scaling at Namshi @ Seamless Ecommerce Dubai 2017
Accelerated Mobile Pages @ Dubytes meetup Dec 2016 in Dubai
A tech team of ~10 @ Rocket Tech Summit 2016 in Berlin
React native in the wild @ Codemotion 2016 in Rome
Dockerize it! @ Codemotion 2016 in Rome
Deploying 3 times a day without a downtime @ Rocket Tech Summit in Berlin
Hey, I just met AngularJS, and this is crazy, so here’s my JavaScript, let’s ...
Don't screw it up: how to build durable web apis @ PHPDay 2014 in Verona (ITA)
Namshi in 2014: let's rock!
Angular js is the future. maybe. @ ConFoo 2014 in Montreal (CA)
OrientDB, the fastest document-based graph database @ Confoo 2014 in Montreal...
A Rocket Internet experience @ ForumPHP Paris 2013
Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San...
The rocket internet experience @ PHP.TO.START 2013 in Turin
GraphDB in PHP @ Codemotion 03/23/2012
REST in peace @ IPC 2012 in Mainz
The state of your own hypertext preprocessor
REST in peace @ Osidays 2011 India 11-21-2011

Recently uploaded (20)

PDF
STKI Israel Market Study 2025 version august
PDF
The-2025-Engineering-Revolution-AI-Quality-and-DevOps-Convergence.pdf
PPT
Galois Field Theory of Risk: A Perspective, Protocol, and Mathematical Backgr...
PDF
Accessing-Finance-in-Jordan-MENA 2024 2025.pdf
PDF
Produktkatalog für HOBO Datenlogger, Wetterstationen, Sensoren, Software und ...
PDF
Credit Without Borders: AI and Financial Inclusion in Bangladesh
PDF
OpenACC and Open Hackathons Monthly Highlights July 2025
PDF
Early detection and classification of bone marrow changes in lumbar vertebrae...
PDF
sustainability-14-14877-v2.pddhzftheheeeee
PDF
Consumable AI The What, Why & How for Small Teams.pdf
PDF
Five Habits of High-Impact Board Members
PDF
Transform-Quality-Engineering-with-AI-A-60-Day-Blueprint-for-Digital-Success.pdf
PDF
5-Ways-AI-is-Revolutionizing-Telecom-Quality-Engineering.pdf
PDF
A review of recent deep learning applications in wood surface defect identifi...
PDF
Improvisation in detection of pomegranate leaf disease using transfer learni...
PPTX
Configure Apache Mutual Authentication
PDF
Transform-Your-Supply-Chain-with-AI-Driven-Quality-Engineering.pdf
PDF
CXOs-Are-you-still-doing-manual-DevOps-in-the-age-of-AI.pdf
PDF
CloudStack 4.21: First Look Webinar slides
PDF
Taming the Chaos: How to Turn Unstructured Data into Decisions
STKI Israel Market Study 2025 version august
The-2025-Engineering-Revolution-AI-Quality-and-DevOps-Convergence.pdf
Galois Field Theory of Risk: A Perspective, Protocol, and Mathematical Backgr...
Accessing-Finance-in-Jordan-MENA 2024 2025.pdf
Produktkatalog für HOBO Datenlogger, Wetterstationen, Sensoren, Software und ...
Credit Without Borders: AI and Financial Inclusion in Bangladesh
OpenACC and Open Hackathons Monthly Highlights July 2025
Early detection and classification of bone marrow changes in lumbar vertebrae...
sustainability-14-14877-v2.pddhzftheheeeee
Consumable AI The What, Why & How for Small Teams.pdf
Five Habits of High-Impact Board Members
Transform-Quality-Engineering-with-AI-A-60-Day-Blueprint-for-Digital-Success.pdf
5-Ways-AI-is-Revolutionizing-Telecom-Quality-Engineering.pdf
A review of recent deep learning applications in wood surface defect identifi...
Improvisation in detection of pomegranate leaf disease using transfer learni...
Configure Apache Mutual Authentication
Transform-Your-Supply-Chain-with-AI-Driven-Quality-Engineering.pdf
CXOs-Are-you-still-doing-manual-DevOps-in-the-age-of-AI.pdf
CloudStack 4.21: First Look Webinar slides
Taming the Chaos: How to Turn Unstructured Data into Decisions

HTTP colon slash slash: the end of the road?