Jetty Logo
Version: 9.4.5.v20170502
Contact the core Jetty developers at www.webtide.com

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 for sponsored feature development

Configuring HTTP/2 Push

HTTP/2 Push is a mechanism that allows the server to send multiple resources to the client for a single client request. This will reduce the amount of round-trips necessary to retrieve all the resources that make up a web page and can significantly improve the page load time.

HTTP/2 Push can be automated in your application by configuring a PushCacheFilter in the web.xml, in this way:

<?xml version="1.0" encoding="UTF-8"?>
<web-app
    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
    metadata-complete="true"
    version="3.1">

    ...
    <filter>
        <filter-name>PushFilter</filter-name>
        <filter-class>org.eclipse.jetty.servlets.PushCacheFilter</filter-class>
        <async-supported>true</async-supported>
    </filter>
    <filter-mapping>
        <filter-name>PushFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    ...

</web-app>

PushCacheFilter analyzes the HTTP requests for resources that arrive to your web application. Some of these requests contain the HTTP Referrer header that points to a resource that has been requested previously. This allows the PushCacheFilter to organize resources in to two categories: primary resources (those referenced by the Referrer header) and secondary resources (those that have the Referer header).

PushCacheFilter associates secondary resources to primary resources. Only secondary resources that have been requested within a time window from the request of the primary resource are associated with the primary resource.

PushCacheFilter can be configured with the following init-params
  • associatePeriod: the time window, in milliseconds, within which a request for a secondary resource will be associated to a primary resource.
  • maxAssociations: the max number of secondary resources that may be associated to a primary resource.

See an error or something missing? Contribute to this documentation at Github!(Generated: 2017-05-02)