private support for your internal/customer projects ... custom extensions and distributions ... versioned snapshots for indefinite support ... scalability guidance for your apps and Ajax/Comet projects ... development services from 1 day to full product delivery
Table of Contents
Jetty supports both a client and a server implementation for the SPDY protocol, beginning with versions 7.6.2 and 8.1.2. As Jetty 7 and 8 are now in maintenance-only mode, we recommend using Jetty 9 if you intend to use SPDY. Not all features described here exist in 7/8. To provide the best support possible for SPDY, the Jetty project also provides an implementation for NPN. Both the SPDY and the NPN implementations require OpenJDK 1.7 or greater.
A server deployed over TLS normally advertises the SPDY protocol via the TLS Extension Next Protocol Negotiation (NPN).
To use SPDY in Jetty you need to add the NPN boot Jar in the boot classpath.
See a SPDY Push Demonstration video from JavaOne 2012.
Jetty's SPDY implementation consists of four modules:
spdy-core
–contains the SPDY API and a
partial implementation. This module is independent of Jetty (the
servlet container), and you can reuse it with other Java SPDY
implementations. One of the goals of this module is to standardize the
SPDY Java API.
spdy-jetty
module–binds the
spdy-core
module to Jetty's NIO framework to
provide asynchronous socket I/O. This module uses Jetty internals, but
Java SPDY client applications can also use it to communicate with a
SPDY server.
spdy-jetty-http
module–provides a
server-side layering of HTTP over SPDY. This module allows any SPDY
compliant browser, such as Chromium/Chrome, to talk SPDY to a Jetty
server that deploys a standard web application made of servlets,
filters and JSPs. This module performs the conversion of SPDY to HTTP and
vice versa so that for the web application it is as if a normal HTTP
request has arrived, and a normal HTTP response is returned.
spdy-jetty-http-webapp
module–provides a
demo application for the a spdy-jetty-http
module.
See an error or something missing? Contribute to this documentation at Github!