No description, website, or topics provided.
JavaScript HTML
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
cert
resources
.gitignore
README.md
index.js
package.json
yarn.lock

README.md

To install

You need a relatively recent version of node (eg 7.9.0, but may work in earlier versions).

npm install

To run

Ensure cert/certificate.pem is trusted by the browser. The best way to do this is to add it to the OS keychain. However, you should remove/disable it after testing, as the private key is in this repo.

npm run dev

This will set up an HTTP/2 HTTPS server on port 3001. Edit index.js if you want to change the port.

/

This slowly pushes /data which contains 4 random numbers, and has max-age=3000.

/data, if requested from the server, returns "NOT FROM PUSH".

The page contains various ways to fetch /data, or refetch the page itself.

/no-cache/

As /, but the pushed resource has no-cache rather than max-age.

/no-store/

As /, but the pushed resource has no-store rather than max-age.

/img/

This slowly pushes /img/cat.svg and has max-age=3000.

/img/cat.svg, if requested from the server, is a 404.

/cross-origin-push/

This slowly pushes 4 random numbers to https://www.example.com:3001/, and has max-age=3000. www.example.com is a SAN, so the push should work.

The page contains button to fetch https://www.example.com:3001/, which won't pick up the pushed resource unless you use your hosts file to make example.com resolve to 127.0.0.1.

/vary-cookie/

This slowly pushes 4 random numbers. The push's request has Cookie: val=a, and the response has Vary: Cookie. Buttons on the page allow you to set the cookie.

/push-post/

This slowly pushes 4 random numbers. The push's request has a method of POST.

/preload-fetch/

Uses <link rel="preload"> to preload /preload-fetch/data.

/preload-img/

Uses <link rel="preload"> to preload /preload-img/cat.svg.

/preload-and-push/

Pushes /preload-and-push/data, but also has a Link rel=preload header for the same resource.

/preload-and-push/img/

As above, but pushes and preloads /preload-and-push/img/cat.svg.