HTML5Labs is where Microsoft prototypes early and unstable specifications from web standards bodies such as W3C. Sharing these prototypes helps us have informed discussions with developer communities, and enables us to provide better feedback on draft specifications based on this implementation experience. To find out more about HTML5Labs, read the blog by Dean Hachamovitch, Corporate Vice President for Internet Explorer, and the blog by Jean Paoli, President, Microsoft Open Technologies, Inc.
Through our continuing support of the HTTP/2.0 standardization through code, we have made some updates to our prototypes. We have moved from the Node.js implementation used server-side by our earlier prototypes to a modified implementation of an existing Apache module for which we are making available in the associated patch.
In this latest iteration, we have made three changes in
particular to advance discussions on the HTTP/2.0 initial draft and
thinking around interoperable implementations:
Negotiation: we have improved upon our initial implementation of the protocol upgrade that we released last month, supporting the scenario where the server does not accept a protocol upgrade.
Flow Control: our prototype uses an infinite Window Update size that is effectively the simplest possible implementation and can be expected to be chosen for many real-world deployments, e.g. by specialized devices for the "Internet of things."
Server push: we have implemented a behavior on the client that resets connections upon receipt of unrequested data from the server. This is particularly important where push might be especially unwelcome on mobile/low bandwidth connections.
This iteration continues to demonstrate our ongoing commitment to the HTTP/2.0 standardization process. Throughout this journey, we have honored the tenets that we stated in earlier updates:
• Maintain existing HTTP semantics.
• Maintain the integrity of the layered architecture.
• Use existing standards when available to make it easy for the protocol to work with the current Web infrastructure.
• Be broadly applicable and flexible by keeping the client in control of content.
• Account for the needs of modern mobile clients, including power efficiency, support for HTTP-based applications, and connectivity through tariffed networks.
These tenets will continue to inform the direction of both our proposals to the IETF and of our engineering efforts.
Please try out the prototype, give us feedback and we'll keep you posted on next steps in the working group.