[IPP] HTTP/2: Some highlights on the advantages and disadvantages

[IPP] HTTP/2: Some highlights on the advantages and disadvantages

[IPP] HTTP/2: Some highlights on the advantages and disadvantages

Michael Sweet msweet at apple.com
Mon Jun 1 21:29:32 UTC 2015


Now that HTTP/2 has been published by the IETF, I think it is worth saying a little about it and how IPP and HTTP/2 would work together.

Executive summary: HTTP/2 provides a binary encoding of the HTTP plain text headers and allows for multiple, simultaneous "streams" (request-response pairs) over a single connection. The semantics from HTTP/1.1 are preserved, so the same transport encoding of IPP over HTTP still applies, however the new binary encoding allows the connection to the Printer to stay up even after errors that would cause a HTTP/1.1 connection to close. HTTP/2 can be negotiated as part of the TLS session or using the HTTP Upgrade protocol.

PRO-1: Connection overhead is reduced, particularly for connections using TLS. This translates into faster monitoring and job control.

PRO-2: The single connection method is also useful for IPP over USB, where interfaces (USB endpoints) are limited. A single USB interface can support a large number of simultaneous requests.

CON-1: Supporting multiple simultaneous HTTP/2 streams will likely require significant, non-trivial changes to existing implementations.

CON-2: HTTP header compression and stream state require additional memory use; this is controllable via HTTP/2 settings, however.

CON-3: Plain text HTTP/2 is optional, and at least 2 browsers will not be supporting it. (could be problematic for IPP over USB usage...)

CON-4: HTTP/2 over TLS requires ALPN support, which is not universally supported.

FWIW, I have been (very sporadically) working on changes to CUPS to support HTTP/2; they are non-trivial and I am still not finished with my implementation (see CON-1 above...)

Michael Sweet, Senior Printing System Engineer, PWG Chair

More information about the ipp mailing list