Reverse ajax
-
Upload
fool2fish -
Category
Technology
-
view
29.750 -
download
1
description
Transcript of Reverse ajax
Reverse AjaxSomething You Don’t Know About HTTP
RDSS Team2012-04
Monday, May 14, 12
Author
澄净F2E & Translatorhttp://goddyzhao.me
Monday, May 14, 12
About
RDSSResearch on Domain Specific Solution
We focus on existing specification, solution, production etc.We apply our research to practice.
Monday, May 14, 12
Solutions
• HTTP Polling & JSONP Polling
• Piggyback
• Comet
• Bayeux(CometD)
• WebSockets
Monday, May 14, 12
HTTP PollingServerBrowser
Tim
eline
Tim
eline
Monday, May 14, 12
HTTP PollingServerBrowser
Tim
eline
Tim
eline
Ajax Requst #1
Monday, May 14, 12
HTTP PollingServerBrowser
Tim
eline
Tim
eline
Ajax Requst #1
Response #1(no data)
Monday, May 14, 12
HTTP PollingServerBrowser
Tim
eline
Tim
eline
Ajax Requst #1
Response #1(no data)
Ajax Requst #2
Monday, May 14, 12
HTTP PollingServerBrowser
Tim
eline
Tim
eline
Ajax Requst #1
Response #1(no data)
Ajax Requst #2
Response #2(no data)
Monday, May 14, 12
HTTP PollingServerBrowser
Tim
eline
Tim
eline
Ajax Requst #1
Response #1(no data)
Ajax Requst #2
Response #2(no data)
Data/Event
Monday, May 14, 12
HTTP PollingServerBrowser
Tim
eline
Tim
eline
Ajax Requst #1
Response #1(no data)
Ajax Requst #2
Response #2(no data)
Data/Event
Data/Event
Monday, May 14, 12
HTTP PollingServerBrowser
Tim
eline
Tim
eline
Ajax Requst #1
Response #1(no data)
Ajax Requst #2
Response #2(no data)
Ajax Requst #3
Data/Event
Data/Event
Monday, May 14, 12
HTTP PollingServerBrowser
Tim
eline
Tim
eline
Ajax Requst #1
Response #1(no data)
Ajax Requst #2
Response #2(no data)
Ajax Requst #3
Response #3(with data)
Data/Event
Data/Event
Monday, May 14, 12
HTTP Polling
Monday, May 14, 12
HTTP Polling
Monday, May 14, 12
HTTP PollingPros
Monday, May 14, 12
HTTP PollingPros
Require no special features on server
Monday, May 14, 12
HTTP PollingPros
Require no special features on server
Works in all browsers
Monday, May 14, 12
HTTP PollingPros
Require no special features on server
Works in all browsers
Easy to implement in client
Monday, May 14, 12
HTTP PollingPros
Require no special features on server
Works in all browsers
Easy to implement in client
Cons
Monday, May 14, 12
HTTP PollingPros
Require no special features on server
Works in all browsers
Easy to implement in client
Cons Bandwidth consuming
Monday, May 14, 12
HTTP PollingPros
Require no special features on server
Works in all browsers
Easy to implement in client
Cons Bandwidth consuming
Large amounts of useless requests
Monday, May 14, 12
PiggybackServerBrowser
Tim
eline
Tim
eline
Monday, May 14, 12
PiggybackServerBrowser
Tim
eline
Tim
eline
Ajax Requst #1
Monday, May 14, 12
PiggybackServerBrowser
Tim
eline
Tim
eline
Ajax Requst #1
Response #1
Monday, May 14, 12
PiggybackServerBrowser
Tim
eline
Tim
eline
Ajax Requst #1
Response #1
Ajax Requst #2
Monday, May 14, 12
PiggybackServerBrowser
Tim
eline
Tim
eline
Ajax Requst #1
Response #1
Ajax Requst #2
Response #2
Monday, May 14, 12
PiggybackServerBrowser
Tim
eline
Tim
eline
Ajax Requst #1
Response #1
Ajax Requst #2
Response #2
Data/Event
Monday, May 14, 12
PiggybackServerBrowser
Tim
eline
Tim
eline
Ajax Requst #1
Response #1
Ajax Requst #2
Response #2
Data/Event
Data/Event
Monday, May 14, 12
PiggybackServerBrowser
Tim
eline
Tim
eline
Ajax Requst #1
Response #1
Ajax Requst #2
Response #2
Ajax Requst #3
Data/Event
Data/Event
Monday, May 14, 12
PiggybackServerBrowser
Tim
eline
Tim
eline
Ajax Requst #1
Response #1
Ajax Requst #2
Response #2
Ajax Requst #3
Mixed Response #3(with data)
Data/Event
Data/Event
Monday, May 14, 12
Piggyback
Monday, May 14, 12
Piggyback
Monday, May 14, 12
PiggybackPros
Monday, May 14, 12
PiggybackPros
Less resources consumption
Monday, May 14, 12
PiggybackPros
Less resources consumption
Works in all browsers
Monday, May 14, 12
PiggybackPros
Less resources consumption
Works in all browsers
No special requirements on server side
Monday, May 14, 12
PiggybackPros
Less resources consumption
Works in all browsers
No special requirements on server side
Cons
Monday, May 14, 12
PiggybackPros
Less resources consumption
Works in all browsers
No special requirements on server side
Cons
Server still have to wait for the request even though the data/event has been arrived
Monday, May 14, 12
Comet:http streamingServerBrowser
Tim
eline
Tim
eline
Monday, May 14, 12
Comet:http streamingServerBrowser
Tim
eline
Tim
eline
Long-lived Request #1
Monday, May 14, 12
Comet:http streamingServerBrowser
Tim
eline
Tim
eline
Long-lived Request #1 Request is suspended
Monday, May 14, 12
Comet:http streamingServerBrowser
Tim
eline
Tim
eline
Long-lived Request #1 Request is suspended
Data/Event
Monday, May 14, 12
Comet:http streamingServerBrowser
Tim
eline
Tim
eline
Long-lived Request #1
Response
Request is suspended
Data/Event
Monday, May 14, 12
Comet:http streamingServerBrowser
Tim
eline
Tim
eline
Long-lived Request #1
ResponseData/Event
Request is suspended
Data/Event
Monday, May 14, 12
Comet:http streamingServerBrowser
Tim
eline
Tim
eline
Long-lived Request #1
ResponseData/Event
Data/Event
Request is suspended
Data/Event
Monday, May 14, 12
Comet:http streamingServerBrowser
Tim
eline
Tim
eline
Long-lived Request #1
ResponseData/Event
Data/Event
Request is suspended
Data/Event
Response
Monday, May 14, 12
Comet:http streamingServerBrowser
Tim
eline
Tim
eline
Long-lived Request #1
ResponseData/Event
Data/Event
Request is suspended
Data/Event
Response Data/Event
Monday, May 14, 12
Comet:http streamingServerBrowser
Tim
eline
Tim
eline
Long-lived Request #1
ResponseData/Event
Data/Event
Request is suspended
Data/Event
Response Data/Event
Data/Event
Monday, May 14, 12
Comet:http streamingServerBrowser
Tim
eline
Tim
eline
Long-lived Request #1
ResponseData/Event
Data/Event
Request is suspended
Data/Event
Response
Response
Data/Event
Data/Event
Monday, May 14, 12
Comet:http streaming
Monday, May 14, 12
Comet:http streaming
Forever Iframe
Monday, May 14, 12
Comet:http streaming
Forever Iframe
Monday, May 14, 12
Comet:http streaming
Forever Iframe
Multipart xhr (multipart/x-mixed-replace)
Monday, May 14, 12
Comet:http streaming
Forever Iframe
Multipart xhr (multipart/x-mixed-replace)
Monday, May 14, 12
Comet:http streaming
Monday, May 14, 12
Pros
Comet:http streaming
Monday, May 14, 12
Pros Save the most bandwidth usage
Comet:http streaming
Monday, May 14, 12
Pros Save the most bandwidth usage
Easy to implement(FI)
Comet:http streaming
Monday, May 14, 12
Pros Save the most bandwidth usage
Easy to implement(FI)
Cons
Comet:http streaming
Monday, May 14, 12
Pros Save the most bandwidth usage
Easy to implement(FI)
Cons No way to implement error handling(FI)
Comet:http streaming
Monday, May 14, 12
Pros Save the most bandwidth usage
Easy to implement(FI)
Cons No way to implement error handling(FI)
Not supported by all the browsers(MX)
Comet:http streaming
Monday, May 14, 12
Pros Save the most bandwidth usage
Easy to implement(FI)
Cons No way to implement error handling(FI)
Not supported by all the browsers(MX)
Comet:http streaming
Supported all the browsers(FI)
Monday, May 14, 12
Comet:Http Long PollingServerBrowser
Tim
eline
Tim
eline
Monday, May 14, 12
Comet:Http Long PollingServerBrowser
Tim
eline
Tim
eline
Long-lived Request #1
Monday, May 14, 12
Comet:Http Long PollingServerBrowser
Tim
eline
Tim
eline
Long-lived Request #1 Request is suspended
Monday, May 14, 12
Comet:Http Long PollingServerBrowser
Tim
eline
Tim
eline
Long-lived Request #1 Request is suspended
Data/Event
Monday, May 14, 12
Comet:Http Long PollingServerBrowser
Tim
eline
Tim
eline
Long-lived Request #1
Response(#1 Completed)
Request is suspended
Data/Event
Monday, May 14, 12
Comet:Http Long PollingServerBrowser
Tim
eline
Tim
eline
Long-lived Request #1
Response(#1 Completed)
Request is suspended
Data/Event
Long-lived Request #2
Monday, May 14, 12
Comet:Http Long PollingServerBrowser
Tim
eline
Tim
eline
Long-lived Request #1
Response(#1 Completed)
Request is suspended
Data/Event
Long-lived Request #2
Monday, May 14, 12
Comet:Http Long PollingServerBrowser
Tim
eline
Tim
eline
Long-lived Request #1
Response(#1 Completed)
Request is suspended
Data/Event
Data/Event
Long-lived Request #2
Monday, May 14, 12
Comet:Http Long PollingServerBrowser
Tim
eline
Tim
eline
Long-lived Request #1
Response(#1 Completed)
Request is suspended
Data/Event
Data/Event
Data/Event
Long-lived Request #2
Monday, May 14, 12
Comet:Http Long PollingServerBrowser
Tim
eline
Tim
eline
Long-lived Request #1
Response(#1 Completed)
Request is suspended
Data/Event
Response(#2 Completed)
Data/Event
Data/Event
Long-lived Request #2
Monday, May 14, 12
Comet:Http Long Polling
Monday, May 14, 12
Script Tags
Comet:Http Long Polling
Monday, May 14, 12
Script Tags
Comet:Http Long Polling
Pros
Monday, May 14, 12
Script Tags
Comet:Http Long Polling
Pros No Cross-Domain Messaging Issue
Monday, May 14, 12
Script Tags
Comet:Http Long Polling
Pros No Cross-Domain Messaging Issue
Easy to implement
Monday, May 14, 12
Script Tags
Comet:Http Long Polling
Pros No Cross-Domain Messaging Issue
Easy to implement
Cons
Monday, May 14, 12
Script Tags
Comet:Http Long Polling
Pros No Cross-Domain Messaging Issue
Easy to implement
Cons No way to implement error handling(FI)
Monday, May 14, 12
Script Tags
Comet:Http Long Polling
Pros No Cross-Domain Messaging Issue
Easy to implement
Cons No way to implement error handling(FI)
Supported by all the browsers
Monday, May 14, 12
Comet:Http Long Polling
Monday, May 14, 12
XMLHttpRequest
Comet:Http Long Polling
Monday, May 14, 12
XMLHttpRequest
Comet:Http Long Polling
Monday, May 14, 12
Comet:Http Long Polling
Monday, May 14, 12
XMLHttpRequest
Comet:Http Long Polling
Monday, May 14, 12
XMLHttpRequest
Comet:Http Long Polling
Pros
Monday, May 14, 12
XMLHttpRequest
Comet:Http Long Polling
Pros Can implement good error handling
Monday, May 14, 12
XMLHttpRequest
Comet:Http Long Polling
Pros Can implement good error handling
Easy to implement
Monday, May 14, 12
XMLHttpRequest
Comet:Http Long Polling
Pros Can implement good error handling
Easy to implement
Supported by all the browsers
Monday, May 14, 12
XMLHttpRequest
Comet:Http Long Polling
Pros Can implement good error handling
Easy to implement
Cons
Supported by all the browsers
Monday, May 14, 12
XMLHttpRequest
Comet:Http Long Polling
Pros Can implement good error handling
Easy to implement
Cons No main disadvantages
Supported by all the browsers
Monday, May 14, 12
XMLHttpRequest
Comet:Http Long Polling
Pros Can implement good error handling
Easy to implement
Cons No main disadvantages
Supported by all the browsers
Monday, May 14, 12
Bayeux
Just a protocol based on http
Monday, May 14, 12
WebSocketsServerBrowser
Tim
eline
Tim
eline
Monday, May 14, 12
WebSocketsServerBrowser
Tim
eline
Tim
eline
Monday, May 14, 12
WebSockets
Monday, May 14, 12
WebSockets
WebSockets enables bi-direction, full-duplex communication
channel like tcp sockets
Monday, May 14, 12
Thanks!
Monday, May 14, 12