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

From: Michael Sweet <[email-masked]>
Date: Mon, 01 Jun 2015 17:29:32 -0400

All,

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

_______________________________________________
ipp mailing list
[email-masked]
https://www.pwg.org/mailman/listinfo/ipp