Check out the updated HTTP Speed+Mobility Open Source Prototype

Microsoft Open Technologies, Inc. has just released an update to the open source HTTP Speed+Mobility Prototype that it first announced in early May to the developer community. This update implements the latest changes made by Microsoft to the HTTP Speed+Mobility proposal to the IETF httbis workgroup on June 15, 2012.

As Jean Paoli and Sandeep Singhal had articulated in their blog post back in March, the HTTPbis working group in the Internet Engineering Task Force (IETF) has approved a new charter to define HTTP “2.0” to address performance limitations with HTTP. The original HTTP Speed+Mobility proposal was the first contribution made by Microsoft toward that goal.

The updated proposal reaffirms the guiding principles of HTTP Speed+Mobility. Specifically, in our view any successful update to the HTTP protocol will have to:

  • 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.
  • And, last but not least, account for the needs of modern mobile clients, including power efficiency, support for HTTP-based applications, and connectivity through costed networks.

We would like to thank the community for your interest in our proposal and for providing valuable feedback on the initial prototype implementation. We made several notable enhancements to the proposal, which the new version of the prototype now implements:

  • We implemented an updated Session Layer to more clearly define the separation with the other layers. The Session Layer is now formally defined as a WebSocket extension.
  • The Streams Layer was simplified to take advantage of the WebSockets integration. We removed all of the redundancy within the WebSockets Framing. For example, HTTP Speed+Mobility frames no longer have a dedicated length field, as the length of the payload is already specified in the underlying Websocket frame.
  • Finally, a new flow control logic was implemented. The prototype implements a simple receive buffer management scheme based on the credit control mechanism now specified in the proposal. We believe that it provides a good balance between throughput and flow control, while adhering to our stated tenet that the Client is in control of the Content.

Collectively, these changes make the HTTP Speed+Mobility protocol both better integrated with the existing RFCs it builds upon, and at the same time, simpler to implement and debug.

As always, we encourage you to download the prototype, try it out, inspect the source code, and give us your feedback. We look forward to your contributions, as well as to constructive discussions about the next version of HTTP at the upcoming IETF meetings!

Adalberto Foresti
Senior Program Manager
Microsoft Open Technologies, Inc.
A subsidiary of Microsoft Corporation