{"action":"created","issue":{"url":"https://api.github.com/repos/justcoding121/Titanium-Web-Proxy/issues/300","repository_url":"https://api.github.com/repos/justcoding121/Titanium-Web-Proxy","labels_url":"https://api.github.com/repos/justcoding121/Titanium-Web-Proxy/issues/300/labels{/name}","comments_url":"https://api.github.com/repos/justcoding121/Titanium-Web-Proxy/issues/300/comments","events_url":"https://api.github.com/repos/justcoding121/Titanium-Web-Proxy/issues/300/events","html_url":"https://github.com/justcoding121/Titanium-Web-Proxy/issues/300","id":239640971,"number":300,"title":"HTTP/2 support","user":{"login":"justcoding121","id":2637679,"avatar_url":"https://avatars2.githubusercontent.com/u/2637679?v=4","gravatar_id":"","url":"https://api.github.com/users/justcoding121","html_url":"https://github.com/justcoding121","followers_url":"https://api.github.com/users/justcoding121/followers","following_url":"https://api.github.com/users/justcoding121/following{/other_user}","gists_url":"https://api.github.com/users/justcoding121/gists{/gist_id}","starred_url":"https://api.github.com/users/justcoding121/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/justcoding121/subscriptions","organizations_url":"https://api.github.com/users/justcoding121/orgs","repos_url":"https://api.github.com/users/justcoding121/repos","events_url":"https://api.github.com/users/justcoding121/events{/privacy}","received_events_url":"https://api.github.com/users/justcoding121/received_events","type":"User","site_admin":false},"labels":[{"id":163191850,"url":"https://api.github.com/repos/justcoding121/Titanium-Web-Proxy/labels/enhancement","name":"enhancement","color":"84b6eb","default":true}],"state":"open","locked":false,"assignee":{"login":"honfika","id":7543982,"avatar_url":"https://avatars1.githubusercontent.com/u/7543982?v=4","gravatar_id":"","url":"https://api.github.com/users/honfika","html_url":"https://github.com/honfika","followers_url":"https://api.github.com/users/honfika/followers","following_url":"https://api.github.com/users/honfika/following{/other_user}","gists_url":"https://api.github.com/users/honfika/gists{/gist_id}","starred_url":"https://api.github.com/users/honfika/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/honfika/subscriptions","organizations_url":"https://api.github.com/users/honfika/orgs","repos_url":"https://api.github.com/users/honfika/repos","events_url":"https://api.github.com/users/honfika/events{/privacy}","received_events_url":"https://api.github.com/users/honfika/received_events","type":"User","site_admin":false},"assignees":[{"login":"honfika","id":7543982,"avatar_url":"https://avatars1.githubusercontent.com/u/7543982?v=4","gravatar_id":"","url":"https://api.github.com/users/honfika","html_url":"https://github.com/honfika","followers_url":"https://api.github.com/users/honfika/followers","following_url":"https://api.github.com/users/honfika/following{/other_user}","gists_url":"https://api.github.com/users/honfika/gists{/gist_id}","starred_url":"https://api.github.com/users/honfika/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/honfika/subscriptions","organizations_url":"https://api.github.com/users/honfika/orgs","repos_url":"https://api.github.com/users/honfika/repos","events_url":"https://api.github.com/users/honfika/events{/privacy}","received_events_url":"https://api.github.com/users/honfika/received_events","type":"User","site_admin":false}],"milestone":null,"comments":3,"created_at":"2017-06-29T23:45:52Z","updated_at":"2018-04-25T02:55:30Z","closed_at":null,"author_association":"OWNER","body":"Now that we are set with ALPN support, shouldn't have any roadblock that would impede HTTP/2 support. The good news is that the hacked ALPN support mentioned in issue #293 should also work cross platform since we are not doing any kind of reflection or native calls. I haven't read the spec complete, but few open source implementations of both server and client seem to be available. So we can perhaps reuse them. Some links below.\r\n\r\n1. http://httpwg.org/specs/rfc7540.html (Spec)\r\n2. https://github.com/Matthias247/http2dotnet (which claim to have a complete implementation of server & client in C#) and has MIT license.\r\n\r\nI am not going to work on this in immediate future. But if anybody is interested this is up for grab. Doesn't  necessarily need to implement a fully functional PR, bugs are expected and PRs with phase by phase progressions are welcome. Whatever work on this we will be doing a beta first. We should try to isolate the HTTP/2 handlers from current Request/Response handlers since it a totally different protocol from whatever I read. There are different scenarios we would probably need to handle. These scenarios should work for both SSL and non-SSL connections. When SSL is used HTTP/2 can be negotiated via ALPN, while for non-SSL connections HTTP/2 is done by upgrade headers mentioned in spec.\r\n\r\n1. Client to proxy HTTP 1.1 => Proxy to server HTTP/2\r\n2. Client to proxy HTTP 1.1 or below => Proxy to Server HTTP 1.1 or below (which is already implemented)\r\n3. Client to proxy HTTP/2 => Proxy to server HTTP 1.1\r\n4. Client to proxy HTTP/2 => Proxy to server HTTP/2\r\n\r\nFor now the 4th option would be a good start.\r\n"},"comment":{"url":"https://api.github.com/repos/justcoding121/Titanium-Web-Proxy/issues/comments/384145453","html_url":"https://github.com/justcoding121/Titanium-Web-Proxy/issues/300#issuecomment-384145453","issue_url":"https://api.github.com/repos/justcoding121/Titanium-Web-Proxy/issues/300","id":384145453,"user":{"login":"justcoding121","id":2637679,"avatar_url":"https://avatars2.githubusercontent.com/u/2637679?v=4","gravatar_id":"","url":"https://api.github.com/users/justcoding121","html_url":"https://github.com/justcoding121","followers_url":"https://api.github.com/users/justcoding121/followers","following_url":"https://api.github.com/users/justcoding121/following{/other_user}","gists_url":"https://api.github.com/users/justcoding121/gists{/gist_id}","starred_url":"https://api.github.com/users/justcoding121/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/justcoding121/subscriptions","organizations_url":"https://api.github.com/users/justcoding121/orgs","repos_url":"https://api.github.com/users/justcoding121/repos","events_url":"https://api.github.com/users/justcoding121/events{/privacy}","received_events_url":"https://api.github.com/users/justcoding121/received_events","type":"User","site_admin":false},"created_at":"2018-04-25T02:55:29Z","updated_at":"2018-04-25T02:55:29Z","author_association":"OWNER","body":"@honfika I noted that you made some setup to support HTTP 2.0. So I assumed you may be working on it in future. Feel free to remove assignee."}}
{"actor":{"display_login":"justcoding121"}}