SlideShare uma empresa Scribd logo
1 de 85
Interactive Web



Timur Babyuk
Software engineer @ Lohika
Interactive Web
Interactive Web




   YES!
Web + HTTP =
Some fundamentals...
Hyper Text Transfer Protocol

•   Created in early 1990s
•   Very simple
•   Human readable
•   Extensible
Very simple
Very simple
    Hi! Give me file by URL

GET /lolcats.html HTTP/1.1
Host: www.lulz.com
Very simple
    Hi! Give me file by URL

GET /lolcats.html HTTP/1.1
Host: www.lulz.com




       Sure, take it. Bye.

HTTP/1.0 200 OK
Content-Length: 11598
Content-Type: text/html

<html>
    <head>
        <title>Lulz Cats</title>
    </head>
    <body>
    ...
HTTP is One Way
• TCP session between client and server is
  opened once request is initiating
• Client sends request
• Server handles request
• Server sends result response
• TCP session is closed
How to push data to client?
How to push data to client?
How to push data to client?
How to push data to client?
History
meta http-equiv="refresh"
meta http-equiv="refresh"

<html>
 <head>
  <title>Meta Refresh</title>

 </head>
 <body>
 ...
 </body>
</html>
meta http-equiv="refresh"

<html>
 <head>
  <title>Meta Refresh</title>
  <meta http-equiv="refresh" content="3">
 </head>
 <body>
 ...
 </body>
</html>
meta http-equiv="refresh"
• Legacy HTML feature
meta http-equiv="refresh"
• Legacy HTML feature
• User can be frustrated by sudden page reload
meta http-equiv="refresh"
• Legacy HTML feature
• User can be frustrated by sudden page reload
• History is broken
meta http-equiv="refresh"
•   Legacy HTML feature
•   User can be frustrated by sudden page reload
•   History is broken
•   Large traffic...
meta http-equiv="refresh"
•   Legacy HTML feature
•   User can be frustrated by sudden page reload
•   History is broken
•   Large traffic...
AJAX
AJAX

JavaScript
AJAX

JavaScript + XMLHttpRequest
AJAX

JavaScript + XMLHttpRequest + JSON
AJAX

JavaScript + XMLHttpRequest + JSON + DOM
AJAX

JavaScript + XMLHttpRequest + JSON + DOM =
Polling
Polling
Any news?
   No
Polling
Any news?
   No




Any news?
   No
Polling
Any news?
   No




Any news?
   No




Any news?
   No
Polling
Any news?
   No




Any news?
   No




Any news?
   No
Polling
Any news?
   No




Any news?
   No




Any news?
   No




Any news?
   Yes!
   ...
Polling
Pros
• Easy implementation
• Durable

Cons
• Not really interactive
• Lots of empty traffic
• High server load
Long Polling
Long Polling
   Any news?
Long Polling
   Any news?
Long Polling
   Any news?




      Yes!
Long Polling
   Any news?




      Yes!
   Any news?
      ...
Long Polling
   Any news?




      Yes!
   Any news?
      ...
Long Polling
Pros
• Cardinally reduces server load
• Almost real-time interactivity

Cons
• Need to reconnect, empty traffic remains
• Tricky implementation
HTTP chunked response
• Part of HTTP protocol
• Available since HTTP 1.1
• Useful when server does not know exact size
  of requested resource
HTTP chunked response
       Hi! Give me file
HTTP chunked response
                  Hi! Give me file


   I don’t know exact size. Take 564 bytes
      HTTP/1.0 200 OK
      Content-Length: 11598
      Content-Type: text/html
      Transfer-Encoding: chunked

      564
      <html>...
HTTP chunked response
                  Hi! Give me file


   I don’t know exact size. Take 564 bytes
      HTTP/1.0 200 OK
      Content-Length: 11598
      Content-Type: text/html
      Transfer-Encoding: chunked

      564
      <html>...


                  Take 710 bytes
HTTP chunked response
                  Hi! Give me file


   I don’t know exact size. Take 564 bytes
      HTTP/1.0 200 OK
      Content-Length: 11598
      Content-Type: text/html
      Transfer-Encoding: chunked

      564
      <html>...


                  Take 710 bytes

                  Take 1240 bytes
                         ...
HTTP chunked response
                  Hi! Give me file


   I don’t know exact size. Take 564 bytes
      HTTP/1.0 200 OK
      Content-Length: 11598
      Content-Type: text/html
      Transfer-Encoding: chunked

      564
      <html>...


                  Take 710 bytes

                  Take 1240 bytes
                         ...
                     That’s all!

      0
How to use it?
Forever Frame
Forever Frame
<html><head></head><body>
<script>
 var newMessage = function(msg){
    // message handling
 };
</script>
<iframe src=“http://host/stream" style=“visibility: hidden;”/>
</body></html>
Forever Frame
<html><head></head><body>
<script>
  var newMessage = function(msg){
     // message handling
  };
</script>
<iframe src=“http://host/stream" style=“visibility: hidden;”/>
</body></html>

Chunked response from http://host/stream:
<html><body>
...
Forever Frame
<html><head></head><body>
<script>
  var newMessage = function(msg){
     // message handling
  };
</script>
<iframe src=“http://host/stream" style=“visibility: hidden;”/>
</body></html>

Chunked response from http://host/stream:
<html><body>
...
<script>window.parent.newMessage(“message1”);</script>
...
Forever Frame
<html><head></head><body>
<script>
  var newMessage = function(msg){
     // message handling
  };
</script>
<iframe src=“http://host/stream" style=“visibility: hidden;”/>
</body></html>

Chunked response from http://host/stream:
<html><body>
...
<script>window.parent.newMessage(“message1”);</script>
...
<script>window.parent.newMessage(“message2”);</script>
...
Forever Frame
<html><head></head><body>
<script>
  var newMessage = function(msg){
     // message handling
  };
</script>
<iframe src=“http://host/stream" style=“visibility: hidden;”/>
</body></html>

Chunked response from http://host/stream:
<html><body>
...
<script>window.parent.newMessage(“message1”);</script>
...
<script>window.parent.newMessage(“message2”);</script>
...
<script>window.parent.newMessage(“message3”);</script>
...
Forever Frame
Pros
• No gap between near messages
• No reconnections between server events
Cons
• Frame being filled with messages causes
  browser’s memory leak
• Reconnections handling routine to be
  implemented manually
What’s your name?


Alex Russell, one of Dojo
Toolkit founders gave
server to client push
technologies stack an
exposed name: Comet
What’s your name?


Alex Russell, one of Dojo
Toolkit founders gave
server to client push
technologies stack an
exposed name: Comet
What’s your name?
Web Socket
•   A special protocol over TCP
•   Allows full duplex between client and server
•   HTTP is used to initialize connection
•   Permanent TCP connection
Web Socket
Protocol handshake
 GET ws://host.com HTTP/1.1
 Host: host.com
 Upgrade: websocket
 Connection: Upgrade
 Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw==



 HTTP/1.1 101 Switching Protocols
 Upgrade: websocket
 Connection: Upgrade
 Sec-WebSocket-Accept: HSmrc0sMlYUkAGmm5OPpG2HaGWk=
Web Socket
<script>
   var websocket = new WebSocket(wsUri);
   websocket.onopen = function(evt) {};
   websocket.onclose = function(evt) {};
   websocket.onmessage = function(evt) {};
   websocket.onerror = function(evt) {};
   ...
   websocket.send(data);
</script>
Web Socket
Pros
• Full duplex
• Connection is managed by browser
Cons
• Not supported by all browsers and servers
• Protocol is not HTTP based
• Standard is not fixed as yet
Server Side Events
•   New feature of HTML5
•   One-way messaging from server to client
•   Fully based on HTTP
•   Permanent TCP connection
•   Implemented using chunked encoding (like
    Forever Frame)
Server Side Events
Request:
GET /eventsource HTTP/1.1
Host: host.com
Connection: keep-alive
Accept: text/event-stream




Response:
HTTP/1.1 200 OK
Content-Type: text/event-stream
Transfer-Encoding: chunked
Expires: -1
Server Side Events
<script>
   var source = new EventSource(url);
   source.addEventListener(“message”, function(e){
       // Process message in e.data
   });
   source.addEventListener(“error”, function(e){
       if(e.readyState == EventSource.CLOSED)
       // process
   });
</script>
Server Side Events
Pros
• Reconnections are handled by browser
• Based on HTTP

Cons
• No full duplex
• Not supported by all browsers
Conclusions
• 4 real-time messaging technologies:
  – Long Polling
  – Forever Frame
  – Web Socket
  – Server Side Events


• Not everywhere supported the same
What to choose?
What to choose?




  ALL OF THEM!
Implementations?!
Implementations?!



 socket.io for Node.js
 SignalR for .NET stack
SignalR
• Is being developed by two guys from ASP.NET
  team
• Open source (github)
• Supports all the 4 messaging technologies
• Automatic fallback from Web Sockets to Long
  Polling, auto detection of browser capabilities
• High level of abstraction – solves business needs
• ...
• Profit!!!
Demo
???????
Skype:

http://cometdaily.com
http://en.wikipedia.org/wiki/Comet_(programming)
http://www.html5rocks.com/en/tutorials/websockets/basics
http://www.html5rocks.com/en/tutorials/eventsource/basics
http://signalr.net
http://socket.io

Mais conteúdo relacionado

Mais procurados

WebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! FrameworkWebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! FrameworkFabio Tiriticco
 
Pushing the web — WebSockets
Pushing the web — WebSocketsPushing the web — WebSockets
Pushing the web — WebSocketsRoland M
 
Introduction to WebSockets
Introduction to WebSocketsIntroduction to WebSockets
Introduction to WebSocketsGunnar Hillert
 
Websockets in Node.js - Making them reliable and scalable
Websockets in Node.js - Making them reliable and scalableWebsockets in Node.js - Making them reliable and scalable
Websockets in Node.js - Making them reliable and scalableGareth Marland
 
Rails Caching Secrets from the Edge
Rails Caching Secrets from the EdgeRails Caching Secrets from the Edge
Rails Caching Secrets from the EdgeMichael May
 
Nuts and Bolts of WebSocket Devoxx 2014
Nuts and Bolts of WebSocket Devoxx 2014Nuts and Bolts of WebSocket Devoxx 2014
Nuts and Bolts of WebSocket Devoxx 2014Arun Gupta
 
Websockets at tossug
Websockets at tossugWebsockets at tossug
Websockets at tossugclkao
 
ApacheConNA 2015: Apache httpd 2.4 Reverse Proxy
ApacheConNA 2015: Apache httpd 2.4 Reverse ProxyApacheConNA 2015: Apache httpd 2.4 Reverse Proxy
ApacheConNA 2015: Apache httpd 2.4 Reverse ProxyJim Jagielski
 
Choosing a Web Architecture for Perl
Choosing a Web Architecture for PerlChoosing a Web Architecture for Perl
Choosing a Web Architecture for PerlPerrin Harkins
 
Websocket protocol overview
Websocket protocol overviewWebsocket protocol overview
Websocket protocol overviewallenmeng
 
Altitude SF 2017: Debugging Fastly VCL 101
Altitude SF 2017: Debugging Fastly VCL 101Altitude SF 2017: Debugging Fastly VCL 101
Altitude SF 2017: Debugging Fastly VCL 101Fastly
 
Using Websockets in Play !
Using Websockets in Play !Using Websockets in Play !
Using Websockets in Play !Knoldus Inc.
 
Using Communication and Messaging API in the HTML5 World
Using Communication and Messaging API in the HTML5 WorldUsing Communication and Messaging API in the HTML5 World
Using Communication and Messaging API in the HTML5 WorldGil Fink
 
HTML5 Real Time and WebSocket Code Lab (SFHTML5, GTUGSF)
HTML5 Real Time and WebSocket Code Lab (SFHTML5, GTUGSF)HTML5 Real Time and WebSocket Code Lab (SFHTML5, GTUGSF)
HTML5 Real Time and WebSocket Code Lab (SFHTML5, GTUGSF)Peter Lubbers
 
Using Websockets with Play!
Using Websockets with Play!Using Websockets with Play!
Using Websockets with Play!Andrew Conner
 
Developing cacheable PHP applications - PHPLimburgBE 2018
Developing cacheable PHP applications - PHPLimburgBE 2018Developing cacheable PHP applications - PHPLimburgBE 2018
Developing cacheable PHP applications - PHPLimburgBE 2018Thijs Feryn
 

Mais procurados (20)

WebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! FrameworkWebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! Framework
 
Pushing the web — WebSockets
Pushing the web — WebSocketsPushing the web — WebSockets
Pushing the web — WebSockets
 
SPDY - or maybe HTTP2.0
SPDY - or maybe HTTP2.0SPDY - or maybe HTTP2.0
SPDY - or maybe HTTP2.0
 
Introduction to WebSockets
Introduction to WebSocketsIntroduction to WebSockets
Introduction to WebSockets
 
Websockets in Node.js - Making them reliable and scalable
Websockets in Node.js - Making them reliable and scalableWebsockets in Node.js - Making them reliable and scalable
Websockets in Node.js - Making them reliable and scalable
 
Intro to WebSockets
Intro to WebSocketsIntro to WebSockets
Intro to WebSockets
 
Rails Caching Secrets from the Edge
Rails Caching Secrets from the EdgeRails Caching Secrets from the Edge
Rails Caching Secrets from the Edge
 
Nuts and Bolts of WebSocket Devoxx 2014
Nuts and Bolts of WebSocket Devoxx 2014Nuts and Bolts of WebSocket Devoxx 2014
Nuts and Bolts of WebSocket Devoxx 2014
 
Websockets at tossug
Websockets at tossugWebsockets at tossug
Websockets at tossug
 
ApacheConNA 2015: Apache httpd 2.4 Reverse Proxy
ApacheConNA 2015: Apache httpd 2.4 Reverse ProxyApacheConNA 2015: Apache httpd 2.4 Reverse Proxy
ApacheConNA 2015: Apache httpd 2.4 Reverse Proxy
 
Web sockets in Java
Web sockets in JavaWeb sockets in Java
Web sockets in Java
 
Choosing a Web Architecture for Perl
Choosing a Web Architecture for PerlChoosing a Web Architecture for Perl
Choosing a Web Architecture for Perl
 
Websocket protocol overview
Websocket protocol overviewWebsocket protocol overview
Websocket protocol overview
 
Altitude SF 2017: Debugging Fastly VCL 101
Altitude SF 2017: Debugging Fastly VCL 101Altitude SF 2017: Debugging Fastly VCL 101
Altitude SF 2017: Debugging Fastly VCL 101
 
Using Websockets in Play !
Using Websockets in Play !Using Websockets in Play !
Using Websockets in Play !
 
Using Communication and Messaging API in the HTML5 World
Using Communication and Messaging API in the HTML5 WorldUsing Communication and Messaging API in the HTML5 World
Using Communication and Messaging API in the HTML5 World
 
HTTP2 is Here!
HTTP2 is Here!HTTP2 is Here!
HTTP2 is Here!
 
HTML5 Real Time and WebSocket Code Lab (SFHTML5, GTUGSF)
HTML5 Real Time and WebSocket Code Lab (SFHTML5, GTUGSF)HTML5 Real Time and WebSocket Code Lab (SFHTML5, GTUGSF)
HTML5 Real Time and WebSocket Code Lab (SFHTML5, GTUGSF)
 
Using Websockets with Play!
Using Websockets with Play!Using Websockets with Play!
Using Websockets with Play!
 
Developing cacheable PHP applications - PHPLimburgBE 2018
Developing cacheable PHP applications - PHPLimburgBE 2018Developing cacheable PHP applications - PHPLimburgBE 2018
Developing cacheable PHP applications - PHPLimburgBE 2018
 

Destaque

Logos 11 (2)
Logos 11 (2)Logos 11 (2)
Logos 11 (2)jma5629
 
05 maria socorro oliveira
05 maria socorro oliveira05 maria socorro oliveira
05 maria socorro oliveiraradarrt
 
GreenScreen Webinar
GreenScreen WebinarGreenScreen Webinar
GreenScreen Webinardarylles
 
building an automated student record.
building an automated student record. building an automated student record.
building an automated student record. danieljethrobote
 
Ute estrategiasmetodológicassuaplicación nee_enero_2016
Ute estrategiasmetodológicassuaplicación nee_enero_2016Ute estrategiasmetodológicassuaplicación nee_enero_2016
Ute estrategiasmetodológicassuaplicación nee_enero_2016Marco Tulio Brito A.
 
E financial communications inc sdccu
E financial communications inc sdccuE financial communications inc sdccu
E financial communications inc sdccuScott Carter
 
04 heederik benzeno
04 heederik benzeno04 heederik benzeno
04 heederik benzenoradarrt
 
Why async matters
Why async mattersWhy async matters
Why async matterstimbc
 
China powerpoint
China powerpointChina powerpoint
China powerpointchinajet08
 
Graphing Points on a Grid
Graphing Points on a GridGraphing Points on a Grid
Graphing Points on a Gridchinajet08
 
Определенные интеграллы
Определенные интеграллыОпределенные интеграллы
Определенные интеграллыdaryaartuh
 
Определенные интегралы
Определенные интегралыОпределенные интегралы
Определенные интегралыdaryaartuh
 
MedicinExpress 13.Sayı - Virginia Apgar / Tülay Aslan
MedicinExpress 13.Sayı - Virginia Apgar / Tülay AslanMedicinExpress 13.Sayı - Virginia Apgar / Tülay Aslan
MedicinExpress 13.Sayı - Virginia Apgar / Tülay AslanMedicinExpress
 

Destaque (18)

Logos 11 (2)
Logos 11 (2)Logos 11 (2)
Logos 11 (2)
 
Sackett
SackettSackett
Sackett
 
05 maria socorro oliveira
05 maria socorro oliveira05 maria socorro oliveira
05 maria socorro oliveira
 
GreenScreen Webinar
GreenScreen WebinarGreenScreen Webinar
GreenScreen Webinar
 
building an automated student record.
building an automated student record. building an automated student record.
building an automated student record.
 
Ute estrategiasmetodológicassuaplicación nee_enero_2016
Ute estrategiasmetodológicassuaplicación nee_enero_2016Ute estrategiasmetodológicassuaplicación nee_enero_2016
Ute estrategiasmetodológicassuaplicación nee_enero_2016
 
E financial communications inc sdccu
E financial communications inc sdccuE financial communications inc sdccu
E financial communications inc sdccu
 
02 abud
02 abud02 abud
02 abud
 
04 heederik benzeno
04 heederik benzeno04 heederik benzeno
04 heederik benzeno
 
Why async matters
Why async mattersWhy async matters
Why async matters
 
China powerpoint
China powerpointChina powerpoint
China powerpoint
 
Graphing Points on a Grid
Graphing Points on a GridGraphing Points on a Grid
Graphing Points on a Grid
 
Media & Gender
Media & GenderMedia & Gender
Media & Gender
 
Определенные интеграллы
Определенные интеграллыОпределенные интеграллы
Определенные интеграллы
 
Определенные интегралы
Определенные интегралыОпределенные интегралы
Определенные интегралы
 
MedicinExpress 13.Sayı - Virginia Apgar / Tülay Aslan
MedicinExpress 13.Sayı - Virginia Apgar / Tülay AslanMedicinExpress 13.Sayı - Virginia Apgar / Tülay Aslan
MedicinExpress 13.Sayı - Virginia Apgar / Tülay Aslan
 
mauro-giuliani-120-arpegios
mauro-giuliani-120-arpegiosmauro-giuliani-120-arpegios
mauro-giuliani-120-arpegios
 
Bioética aborto
Bioética   abortoBioética   aborto
Bioética aborto
 

Semelhante a Interactive web. O rly?

HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0
HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0
HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0Cory Forsyth
 
Web Real-time Communications
Web Real-time CommunicationsWeb Real-time Communications
Web Real-time CommunicationsAlexei Skachykhin
 
Woo: Writing a fast web server @ ELS2015
Woo: Writing a fast web server @ ELS2015Woo: Writing a fast web server @ ELS2015
Woo: Writing a fast web server @ ELS2015fukamachi
 
IBM dwLive, "Internet & HTTP - 잃어버린 패킷을 찾아서..."
IBM dwLive, "Internet & HTTP - 잃어버린 패킷을 찾아서..."IBM dwLive, "Internet & HTTP - 잃어버린 패킷을 찾아서..."
IBM dwLive, "Internet & HTTP - 잃어버린 패킷을 찾아서..."Dongwook Lee
 
Leverage HTTP to deliver cacheable websites - Codemotion Rome 2018
Leverage HTTP to deliver cacheable websites - Codemotion Rome 2018Leverage HTTP to deliver cacheable websites - Codemotion Rome 2018
Leverage HTTP to deliver cacheable websites - Codemotion Rome 2018Thijs Feryn
 
Leverage HTTP to deliver cacheable websites - Thijs Feryn - Codemotion Rome 2018
Leverage HTTP to deliver cacheable websites - Thijs Feryn - Codemotion Rome 2018Leverage HTTP to deliver cacheable websites - Thijs Feryn - Codemotion Rome 2018
Leverage HTTP to deliver cacheable websites - Thijs Feryn - Codemotion Rome 2018Codemotion
 
JUDCon 2013- JBoss Data Grid and WebSockets: Delivering Real Time Push at Scale
JUDCon 2013- JBoss Data Grid and WebSockets: Delivering Real Time Push at ScaleJUDCon 2013- JBoss Data Grid and WebSockets: Delivering Real Time Push at Scale
JUDCon 2013- JBoss Data Grid and WebSockets: Delivering Real Time Push at ScaleC2B2 Consulting
 
PHP Training: Module 1
PHP Training: Module 1PHP Training: Module 1
PHP Training: Module 1hussulinux
 
Computer network (10)
Computer network (10)Computer network (10)
Computer network (10)NYversity
 
Webapp security testing
Webapp security testingWebapp security testing
Webapp security testingTomas Doran
 
Webapp security testing
Webapp security testingWebapp security testing
Webapp security testingTomas Doran
 
DEF CON 27- ALBINOWAX - http desync attacks
DEF CON 27- ALBINOWAX - http desync attacksDEF CON 27- ALBINOWAX - http desync attacks
DEF CON 27- ALBINOWAX - http desync attacksFelipe Prado
 
KMUTNB - Internet Programming 2/7
KMUTNB - Internet Programming 2/7KMUTNB - Internet Programming 2/7
KMUTNB - Internet Programming 2/7phuphax
 
Hidden Gems in HTTP
Hidden Gems in HTTPHidden Gems in HTTP
Hidden Gems in HTTPBen Ramsey
 
Http - All you need to know
Http - All you need to knowHttp - All you need to know
Http - All you need to knowGökhan Şengün
 

Semelhante a Interactive web. O rly? (20)

HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0
HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0
HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0
 
Web Real-time Communications
Web Real-time CommunicationsWeb Real-time Communications
Web Real-time Communications
 
HTTP
HTTPHTTP
HTTP
 
Woo: Writing a fast web server @ ELS2015
Woo: Writing a fast web server @ ELS2015Woo: Writing a fast web server @ ELS2015
Woo: Writing a fast web server @ ELS2015
 
IBM dwLive, "Internet & HTTP - 잃어버린 패킷을 찾아서..."
IBM dwLive, "Internet & HTTP - 잃어버린 패킷을 찾아서..."IBM dwLive, "Internet & HTTP - 잃어버린 패킷을 찾아서..."
IBM dwLive, "Internet & HTTP - 잃어버린 패킷을 찾아서..."
 
Leverage HTTP to deliver cacheable websites - Codemotion Rome 2018
Leverage HTTP to deliver cacheable websites - Codemotion Rome 2018Leverage HTTP to deliver cacheable websites - Codemotion Rome 2018
Leverage HTTP to deliver cacheable websites - Codemotion Rome 2018
 
Leverage HTTP to deliver cacheable websites - Thijs Feryn - Codemotion Rome 2018
Leverage HTTP to deliver cacheable websites - Thijs Feryn - Codemotion Rome 2018Leverage HTTP to deliver cacheable websites - Thijs Feryn - Codemotion Rome 2018
Leverage HTTP to deliver cacheable websites - Thijs Feryn - Codemotion Rome 2018
 
JUDCon 2013- JBoss Data Grid and WebSockets: Delivering Real Time Push at Scale
JUDCon 2013- JBoss Data Grid and WebSockets: Delivering Real Time Push at ScaleJUDCon 2013- JBoss Data Grid and WebSockets: Delivering Real Time Push at Scale
JUDCon 2013- JBoss Data Grid and WebSockets: Delivering Real Time Push at Scale
 
PHP Training: Module 1
PHP Training: Module 1PHP Training: Module 1
PHP Training: Module 1
 
5-WebServers.ppt
5-WebServers.ppt5-WebServers.ppt
5-WebServers.ppt
 
Computer network (10)
Computer network (10)Computer network (10)
Computer network (10)
 
Http2 kotlin
Http2   kotlinHttp2   kotlin
Http2 kotlin
 
Webapp security testing
Webapp security testingWebapp security testing
Webapp security testing
 
Webapp security testing
Webapp security testingWebapp security testing
Webapp security testing
 
DEF CON 27- ALBINOWAX - http desync attacks
DEF CON 27- ALBINOWAX - http desync attacksDEF CON 27- ALBINOWAX - http desync attacks
DEF CON 27- ALBINOWAX - http desync attacks
 
KMUTNB - Internet Programming 2/7
KMUTNB - Internet Programming 2/7KMUTNB - Internet Programming 2/7
KMUTNB - Internet Programming 2/7
 
Think async
Think asyncThink async
Think async
 
Hidden Gems in HTTP
Hidden Gems in HTTPHidden Gems in HTTP
Hidden Gems in HTTP
 
Http - All you need to know
Http - All you need to knowHttp - All you need to know
Http - All you need to know
 
Starting With Php
Starting With PhpStarting With Php
Starting With Php
 

Interactive web. O rly?