New Server Implementation for IETF HTTP/2.0 Draft Creates End Points for Interop Testing

Our team at Microsoft Open Technologies, Inc. (MS Open Tech), has been steadily working on prototyping implementations of the HTTP/2.0 Draft for Interop testing. For the second Implementable Draft released by the HTTPbis working group of the IETF, we’ve created new end points available by using the Katana server.

These public end points will make it easier for the community to do their own interop tests and provide feedback on the next version of the protocol. The endpoints are published here and here.

The HTTP/2.0 server that MS Open Tech created using the Katana Project is open source. You can find the code that we wrote for the project on our MS Open Tech GitHub http2-katana page. If you’re interested in poking around this evolving project, we’ve listed build instructions in the file on GitHub

HTTP is one of the most important protocols for the internet and the emerging HTTP/2.0 standard will likely be one of the most critical and widely-used protocols for providing Internet services to a variety of devices and services.

While many of us were in the middle of summer vacations last month, the HTTP working group updated the protocol in their August meeting. Brian Raymor on our team blogged an update on the progress from this standards organization. Knowing there is no harm in repeating a good thing, I wanted to call out one thing in particular that is moving quickly.

Application Layer Protocol Negotiation (ALPN) completed the IETF Last-Call period and the draft has been revised based on comments. Microsoft is one of the co-authors of the draft, which is required to support HTTP/2.0 secure negotiation.

Watch this space as we continue to provide updates on our engineering and standards engagement for HTTP/2.0. For our next update, we’ll be reporting closer to our Microsoft Open Tech home, as we are hosting the 4th interim HTTP/2.0 meeting, October 9 – October 11 in Bellevue, WA, with the participation from Microsoft product groups.

Parashuram Narasimhan, MS Open Tech

Jeff Mendoza, MS Open Tech

4 thoughts on “New Server Implementation for IETF HTTP/2.0 Draft Creates End Points for Interop Testing

  1. I would like to draw your attention towards an open source project Vagrant.

    After the demise of IronRuby at Microsoft, we are missing some great ruby products due to the disconnect with this community. One of them is a wrapper for virtual machines known as Vagrant, to stamp out an isolated environment for the developers.

    This command line utility can create Windows or Linux virtual machines with predefined settings. Currently its only supporting VirtualBox. After switching to Windows 8 and finding that Hyper-V is supported in client OS, we asked the developer of Vagrant to support Hyper-V for running Vagrant VM:

    Apparently, the developers don’t have hands on experience with Hyper-V and corresponding shell commands.

    It would be great if you guys can contribute Hyper-V support in Vagrant for the community! Or pledge for it

  2. @Flinch – Vagrant looks really interesting, we have been investigating it. Can you tell us some more about your use case?

    • @Ross, vagrant is a wrapper for creating VM on various VM software (VirtualBox, VMware). It reads *.box VM files and applies the settings defined in Vagrant file. A very useful tool to create/delete VMs on the fly and keep your host machine clean from all kinds of installations and developer tools (.NET, PHP and frameworks, Ruby and frameworks, gems, plugins yada yada).

      Now, as a developer, you can download, borrow or create multiple box files (Ubuntu, Windows, Fedora). Then you can create multiple Vagrant (configuration) files, define which box you want to use and put into relavent project directories. Then using cmd, you can initialize vagrant (vagrant init command) Once its initialized, you can use vagrant up to start the virtual machine right from cmd without caring about which underlying software is initialize. Vagrant, as a wrapper, will apply all the settings and start virtual machine. After that you can using vagrant ssh to get into the command prompt of virtual machine. We can take the base box anywhere and even extend the ability to create a generic recipe for managing boxes.

      Its very handy if you are a developer working on various projects. For example, for each ruby project, you have multiple gems (shared plugins) and configuration at system level. When running the webserver on host machine, each project may install set of gems in the OS. If there is a conflict in some files which results in corruption of installation, you are supposed to fix it or uninstall and reinstall Ruby and all the gems again. With Vagrant, you can create a base box (with all the installations) and then duplicate it and initialize for each project (or even multiple projects if Vagrant config file reside on the root of projects.. like Documents\Visual Studio 2013\Projects\Vagrant). If something goes sideways, you can recreate from base box (like Hyper-V’s templates). Your project will reside in a (shared) directory on host machine. All the platform installation, plugins etc. will go in VM, with the project folder shared from host. You can access your project folder at /Vagrant/your-project folder in any VM any OS.
      Currently, vagrant doesn’t have Hyper-V adapter. Its an open source project. I am hoping if you guys can contribute and help us bringing Hyper-V adapter so users running Windows 8+ don’t need to install VirtualBox when they have a better alternative. Here is the official guide to create custom provider

      Also, you guys can bring a similar solution, a cross-platform wrapper for all VM software for developers, testers and IT admins.