19. HTTP/1.x 200 OK
X-Powered-By: Servlet/2.5
Server: Sun Java System Application Server 9.1_02
Content-Type: text/html;charset=UTF-8
Content-Length: 21
Date: Sat, 07 Nov 2009 00:32:46 GMT
20. GET /text HTTP/1.1rn
Upgrade: WebSocketrn
Connection: Upgradern
Host: www.websocket.orgrn
…rn
HTTP/1.1 101 WebSocket Protocol Handshakern
Upgrade: WebSocketrn
Connection: Upgradern …rn
The WebSocket handshake (browser request and server response)
Source: http://www.websocket.org/quantum.html
25. Java
Jetty C++
libwebsocket
s
Ruby
EventMachin
e
.NET
Erlang Python SuperWebSocket
Shirasu pywebsocket
Tornado
26.
27.
28.
29.
30. <section itemscope itemtype="http://data-vocabulary.org/Person">
Hello, my name is
<span itemprop="name">Suresh Balla</span>,
I am a
<span itemprop="title">principal consultant</span>
at the
<span itemprop="affiliation">Neudesic India</span>.
My friends call me
<span itemprop="nickname">Suresh</span>.
You can visit my homepage at
<a href="http://www.SureshBalla.com" itemprop="url">www.SureshBalla.com</a>.
<section itemprop="address" itemscope itemtype="http://data-vocabulary.org/Address">
I live at
<span itemprop="street-address">1234</span>
<span itemprop="locality">White field</span>
<span itemprop="region">Bangalore</span>.
</section>
</section>
31. Developers can test pages containing
Microdata using Google's Rich Snippet
Testing Tool
32. Defines a group of
<section itemscope itemtype="http://data-vocabulary.org/Person">
vocabulary name/pair
Hello, my name is
<span itemprop="name">Suresh Balla</span>,
values
I am a
<span itemprop="title">principal consultant</span>
at the
<span itemprop="affiliation">Neudesic India</span>.
My friends call me
<span itemprop="nickname">Suresh</span>.
You can visit my homepage at
<a href="http://www.SureshBalla.com" itemprop="url">www.SureshBalla.com</a>.
<section itemprop="address" itemscope itemtype="http://data-vocabulary.org/Address">
I live at
<span itemprop="street-address">1234</span>
<span itemprop="locality">White field</span>
<span itemprop="region">Bangalore</span>.
</section>
</section>
33. <section itemscope itemtype="http://data-vocabulary.org/Person"> URL that identifies the
Hello, my name is scope
<span itemprop="name">Suresh Balla</span>,
I am a
<span itemprop="title">principal consultant</span>
at the
<span itemprop="affiliation">Neudesic India</span>.
My friends call me
<span itemprop="nickname">Suresh</span>.
You can visit my homepage at
<a href="http://www.SureshBalla.com" itemprop="url">www.SureshBalla.com</a>.
<section itemprop="address" itemscope itemtype="http://data-vocabulary.org/Address">
I live at
<span itemprop="street-address">1234</span>
<span itemprop="locality">White field</span>
<span itemprop="region">Bangalore</span>.
</section>
</section>
34. <section itemscope itemtype="http://data-vocabulary.org/Person"> Adds a property to
Hello, my name is element
<span itemprop="name">Suresh Balla</span>,
I am a
<span itemprop="title">principal consultant</span>
at the
<span itemprop="affiliation">Neudesic India</span>.
My friends call me
<span itemprop="nickname">Suresh</span>.
You can visit my homepage at
<a href="http://www.SureshBalla.com" itemprop="url">www.SureshBalla.com</a>.
<section itemprop="address" itemscope itemtype="http://data-vocabulary.org/Address">
I live at
<span itemprop="street-address">1234</span>
<span itemprop="locality">White field</span>
<span itemprop="region">Bangalore</span>.
</section>
</section>
35. Element Attribute Containing Value
meta content
audio src
embed src
iframe src
img src
source src
video src
a href
area href
link href
object data
time datetime
All others Text content
Developers mimic 'concurrency' by using techniques like setTimeout(), setInterval(), XMLHttpRequest, and event handlers. Yes, all of these features run asynchronously, but non-blocking doesn't necessarily mean concurrency. Asynchronous events are processed after the current executing script has yielded. The good news is that HTML5 gives us something better than these hacks!