You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by "Ryo Okubo (JIRA)" <ji...@apache.org> on 2014/11/28 08:38:12 UTC

[jira] [Comment Edited] (TS-2729) Add HTTP/2 support to ATS

    [ https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14228071#comment-14228071 ] 

Ryo Okubo edited comment on TS-2729 at 11/28/14 7:37 AM:
---------------------------------------------------------

This patch enables to upgrade from HTTP/1 processes to HTTP/2 by using [upgrade mechanism|https://tools.ietf.org/html/draft-ietf-httpbis-http2-15#section-3.2].

We can test it by nghttp2 with _--upgrade_ option.
{noformat}
$ nghttp --verbose --upgrade http://localhost:8080/
[  0.006] HTTP Upgrade request
GET / HTTP/1.1
Host: localhost:8080
Connection: Upgrade, HTTP2-Settings
Upgrade: h2c-14
HTTP2-Settings: AAMAAABkAAQAAP__
Accept: */*
User-Agent: nghttp2/0.6.1


[  0.007] HTTP Upgrade response
HTTP/1.1 101 Switching Protocols
Date: Fri, 28 Nov 2014 07:31:06 GMT
Connection: Upgrade
Server: ATS/5.3.0
Upgrade: h2c-14


[  0.007] HTTP Upgrade success
[  0.007] send SETTINGS frame <length=12, flags=0x00, stream_id=0>
          (niv=2)
          [SETTINGS_MAX_CONCURRENT_STREAMS(0x03):100]
          [SETTINGS_INITIAL_WINDOW_SIZE(0x04):65535]
[  0.008] recv SETTINGS frame <length=0, flags=0x00, stream_id=0>
          (niv=0)
[  0.008] send SETTINGS frame <length=0, flags=0x01, stream_id=0>
          ; ACK
          (niv=0)
[  0.008] recv SETTINGS frame <length=0, flags=0x01, stream_id=0>
          ; ACK
          (niv=0)
{noformat}

Processes after upgrading haven't been implemented yet.


was (Author: rokubo):
This patch enables to upgrade from HTTP/1 processes to HTTP/2 by using [upgrade mechanism|https://tools.ietf.org/html/draft-ietf-httpbis-http2-15#section-3.2].

> Add HTTP/2 support to ATS
> -------------------------
>
>                 Key: TS-2729
>                 URL: https://issues.apache.org/jira/browse/TS-2729
>             Project: Traffic Server
>          Issue Type: New Feature
>          Components: HTTP/2
>            Reporter: Ryo Okubo
>            Assignee: James Peach
>              Labels: review
>             Fix For: 6.0.0
>
>         Attachments: add_const.patch, fix_typo.patch, h2-14.patch, h2_prototype.patch, h2c_upgrade.patch, hpack.patch, http2-0004.patch
>
>
> h2. Overview
> Support HTTP/2 as a client side L7 protocol. This feature is implemented into ATS core.
> Now, it supports the latest HTTP/2 draft version, h2-14.
> https://tools.ietf.org/html/draft-ietf-httpbis-http2-14
> h2. How to test
> # Build ATS codes normally. you need neither any build option nor external HTTP/2 library.
> # Configure settings to use https.
> # Access to ATS by HTTP/2 client.
> h2. Descriptions of current attached patches.
> * h2_prototype.patch
> ** For experiment. Please don't merge it. It enables to interpret HTTP/2 requests and respond for it. But now this code is unsafe and dirty. More refactoring is required.
> h2. WIP
> * Improve h2_prototype
> * Implement hpack test tools



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)