Version: 9.4.7.v20170914 |

Configuring HTTP/2 Push
Previous | Chapter 16. HTTP/2 Home | Next

##### 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.

Previous | Top | Next
Configuring HTTP/2 | Home | Configuring HAProxy and Jetty

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