microsoftarchive / http2-katana

HTTP 2.0 with Katana
133 stars 34 forks source link

http2-katana

This is an implementation of Hypertext Transfer Protocol version 2 in C# with OWIN Katana. Be aware this code is released as a prototype of static files server, test client and Bing proxy demo server. This should only be used for interoperability testing.

Development Status

This prototype supports h2-12 (http://tools.ietf.org/html/draft-ietf-httpbis-http2-12) and headers compression 07 (http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-07).

HTTP/2 Features Support
ALPN Yes
Upgrade Yes
SNI Yes
NPN No
Direct No
ALTSVC No

Public Test Server

The following endpoints are available to try out http2-katana implementation:

Build instructions:

Build Http2.Katana solution. All executables (static files server, test client, Bing proxy) and required libraries will be under Drop direcrtory. You can use Http2.Owin.StaticFiles.Sample.exe to start static files server or alternatively install server as windows service using Http2.Owin.Service.Sample.exe. Also use Http2.Owin.BingProxy.Sample.exe to run Bing proxy demo server.

Endpoints Configuration

All of servers under Drop folder could be configured with *.config files. The follwoing options are avaliable:

Key Description
useSecurePort use secure adress or not
secureAddress address for https urls (ALPN)
unsecureAddress address for http urls (Upgrade)
handshakeOptions value of 'handshake' or 'no-handshake' (response by http/1.1)
server-name used by SNI to validate host name
securePort port number for secureAddress
unsecurePort port number for unsecureAddress

Tests Running

It's easy. Just install XUnit framework extension for Visual Studio and run tests from Test Explorer window.