Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including http2-testpage with all npm packages installed. Try it out:

http2-testpage lists no main file and has no index.js, so it can't be directly required. If this is a mistake, please let us know. It may however contain internal files that you can require manually:

// require("http2-testpage/[??]")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

http2-testpage v0.2.0

A test server for testing client side HTTP/2 implementations

HTTP2 testpage

This project aims to provide a server that can be used to test client side HTTP/2 implementations.

One of the most important aspects is handling protocol errors, since it's something that's usually hard to test without custom server side software.

The test server is written in JavaScript for node.js using the node-http2 HTTP/2 library.

Supported client software

The goal is to be accessible to as many different clients as possible. Currently, you will need a client software with the following capabilities:

  • ability to follow redirects (307 Temporary Redirect)

This list will probably gain more items in the future. For example, tests will need a way to tell client software what to do next. The simplest solution is to send HTML code that contains links to images or iframes. This will require the client to be able to parse HTML and initiate requests for subresources.

The only supported version of the standard is the draft-ietf-httpbis-http2-06 draft.

How to use

You will need at least node version 0.10.0. Install http2-testpage using npm (the node package manager):

$ npm install -g http2-testpage

Use the http2-testpage executable:

$ http2-testpage -h

  Usage: http2-testpage [options]

  Options:

    -h, --help         output usage information
    -V, --version      output the version number
    -l, --log [level]  Logging level [info]
    -k, --key [path]   Private key to use [http2-testpage/keys/localhost.key]
    -c, --crt [path]   Certificate to use [http2-testpage/keys/localhost.crt]
    -p, --port [port]  Port to listen on [8080]

Point your client software to the https://localhost:8080/testname URL, where testname is one of the directory names in the test directory. It will create a server on a dedicated port and redirect the client to that port using a 307 Temporary Redirect.

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free