blob: 18c34df5c350c615ed30b3ed2527d1549c75ca98 [file] [log] [blame]
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Chapter&nbsp;16.&nbsp;SPDY</title><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"><meta name="keywords" content="jetty, servlet-api, cometd, http, spdy, eclipse, maven, java, software"><link rel="home" href="index.html" title="Jetty : The Definitive Reference"><link rel="up" href="advanced.html" title="Part&nbsp;III.&nbsp;Advanced Topics Guide"><link rel="prev" href="npn-chapter.html" title="Chapter&nbsp;15.&nbsp;NPN"><link rel="next" href="spdy-configuring.html" title="Configuring SPDY"><link xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times" rel="shortcut icon" href="images/favicon.ico"><script type="text/javascript" src="js/shCore.js"></script><script type="text/javascript" src="js/shBrushJava.js"></script><script type="text/javascript" src="js/shBrushXml.js"></script><script type="text/javascript" src="js/shBrushBash.js"></script><script type="text/javascript" src="js/shBrushJScript.js"></script><script type="text/javascript" src="js/shBrushSql.js"></script><script type="text/javascript" src="js/shBrushProperties.js"></script><script type="text/javascript" src="js/shBrushPlain.js"></script><link type="text/css" rel="stylesheet" href="css/shCore.css"><link type="text/css" rel="stylesheet" href="css/shThemeEclipse.css"><link type="text/css" rel="stylesheet" href="css/font-awesome.min.css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times"><tr><td style="width: 25%"><a href="http://www.eclipse.org/jetty"><img src="images/jetty-header-logo.png" alt="Jetty Logo"></a><br><span style="font-size: small">
Version: 9.0.6.v20130930</span></td><td style="width: 50%"><script type="text/javascript"> (function() {
var cx = '016459005284625897022:obd4lsai2ds';
var gcse = document.createElement('script');
gcse.type = 'text/javascript';
gcse.async = true;
gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
'//www.google.com/cse/cse.js?cx=' + cx;
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(gcse, s);
})();
</script><gcse:search></gcse:search></td></tr></table><div xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter&nbsp;16.&nbsp;SPDY</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="npn-chapter.html"><i class="icon-chevron-left"></i> Previous</a>&nbsp;</td><th width="60%" align="center">Part&nbsp;III.&nbsp;Advanced Topics Guide<br><a accesskey="p" href="index.html"><i class="icon-home"></i> Home</a></th><td width="20%" align="right">&nbsp;<a accesskey="n" href="spdy-configuring.html">Next <i class="icon-chevron-right"></i></a></td></tr></table><hr></div><div xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times" class="jetty-callout"><h5 class="callout"><a href="http://www.webtide.com/support.jsp">Contact the core Jetty developers at
<span class="website">www.webtide.com</span></a></h5><p>
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
</p></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a name="spdy"></a>Chapter&nbsp;16.&nbsp;SPDY</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="spdy.html#spdy-introduction">Introducing SPDY</a></span></dt><dt><span class="section"><a href="spdy-configuring.html">Configuring SPDY</a></span></dt><dt><span class="section"><a href="spdy-configuring-proxy.html">Configuring SPDY Proxy</a></span></dt><dt><span class="section"><a href="spdy-configuring-push.html">Configuring SPDY push</a></span></dt><dt><span class="section"><a href="spdy-implementing-push.html">Implement a custom SPDY PushStrategy</a></span></dt></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="spdy-introduction"></a>Introducing SPDY</h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="spdy.html#spdy-modules">Jetty's SPDY modules</a></span></dt></dl></div><p>Jetty supports both a client and a server implementation for the <a class="link" href="http://www.chromium.org/spdy" target="_top">SPDY</a> 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 <a class="link" href="http://wiki.eclipse.org/Jetty/Feature/NPN" target="_top">NPN</a>. Both the
SPDY and the NPN implementations require OpenJDK 1.7 or greater.</p><p>A server deployed over TLS normally advertises the SPDY protocol via
the TLS Extension Next Protocol Negotiation <a class="link" href="npn-chapter.html#npn">(NPN)</a>.</p><div xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times" class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><i class="icon-plus-sign-alt"></i> Important</h3><p> To use SPDY in Jetty you need to add the <a class="link" href="npn-chapter.html#npn-starting" title="Starting the JVM">NPN boot Jar in the boot classpath.</a></p></div><p>See a <a class="link" href="http://webtide.intalio.com/2012/10/spdy-push-demo-from-javaone-2012/" target="_top">SPDY
Push Demonstration video from JavaOne 2012. </a></p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="spdy-modules"></a>Jetty's SPDY modules</h3></div></div></div><p>Jetty's SPDY implementation consists of four modules:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p><code class="filename">spdy-core</code>&#8211;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.</p></li><li class="listitem"><p><code class="filename">spdy-jetty</code> module&#8211;binds the
<code class="filename">spdy-core</code> 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.</p></li><li class="listitem"><p><code class="filename">spdy-jetty-http</code> module&#8211;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.</p></li><li class="listitem"><p><code class="filename">spdy-jetty-http-webapp</code> module&#8211;provides a
demo application for the a <code class="filename">spdy-jetty-http</code>
module.</p></li></ol></div></div></div></div><script type="text/javascript">
SyntaxHighlighter.all()
</script><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="npn-chapter.html"><i class="icon-chevron-left"></i> Previous</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="advanced.html"><i class="icon-chevron-up"></i> Top</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="spdy-configuring.html">Next <i class="icon-chevron-right"></i></a></td></tr><tr><td width="40%" align="left" valign="top">Chapter&nbsp;15.&nbsp;NPN&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html"><i class="icon-home"></i> Home</a></td><td width="40%" align="right" valign="top">&nbsp;Configuring SPDY</td></tr></table></div><p xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times"><div class="jetty-callout">
See an error or something missing?
<span class="callout"><a href="http://github.com/jetty-project/jetty-documentation">Contribute to this documentation at
<span class="website"><i class="icon-github"></i> Github!</span></a></span><span style="float: right"><i>(Generated: 2013-10-30T13:20:28-05:00)</i></span></div></p><script xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times" type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-1149868-7']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script></body></html>