You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@trafficserver.apache.org by Nick Dunkin <Ni...@vecima.com> on 2021/10/04 18:41:09 UTC

HTTP/2 and ATS

Hi

Disclaimer: I am very new to HTTP/2 so I may be making very basic errors/assumptions here.

I am trying to enable and test HTTP/2 on ATS 9.0.x.  I am using CURL with the “--http2-prior-knowledge” flag but I am not getting good results.

From CURL I get the following error:
* Recv failure: Connection reset by peer
* Failed receiving HTTP2 data
* Send failure: Broken pipe
* Failed sending HTTP2 data
* Connection #0 to host 10.211.55.6 left intact
curl: (56) Recv failure: Connection reset by peer
And from ATS I am seeing the following warnings in diags.log

[Aug 22 15:45:22.334] [ET_NET 0] WARNING: Unregistered protocol type 1

One question I have is whether I need HTTPS to even be testing HTTP/2.  The internet seems a little vague on this question.

Any pointers from the community would be most welcome.

Thanks

Nick

Nick Dunkin
Director, Software Engineering
Manager – Architecture and New Product Introduction
o:  +1 678.258.4071
e: nick.dunkin@vecima.com<ma...@vecima.com>

[cidimage001.png@01D6CC8C.6FC5A580]


Re: HTTP/2 and ATS

Posted by Nick Dunkin <Ni...@vecima.com>.
Hi Robert,

Thanks so much for your reply.

Yes, I had been trying to serve this content over a non-https port, so I was pretty much broken from the start.

I’ll enable https, update my config and take another swing.  Thanks for the direction.

Nick

From: Robert O Butts <ro...@apache.org>
Reply-To: "users@trafficserver.apache.org" <us...@trafficserver.apache.org>
Date: Monday, October 4, 2021 at 2:59 PM
To: "users@trafficserver.apache.org" <us...@trafficserver.apache.org>
Subject: Re: HTTP/2 and ATS

Yes, HTTP/2 requires HTTPS. It is technically possible to do H2 over HTTP, but nobody in the industry supports it, as there's no legitimate reason to. So for all practical purposes, yes, H2 requires HTTPS.
What's your URL? Are you requesting `http://foo` or `https://foo`? Needs to be https, as above.

Second, what ports are you serving what protocols on, with ATS? What does your records.config proxy.config.http.server_ports look like?

https://docs.trafficserver.apache.org/en/8.1.x/admin-guide/files/records.config.en.html#proxy-config-http-server-ports
It should look something like:

CONFIG proxy.config.http.server_ports STRING 80 80:ipv6 443:proto=http2;http:ssl 443:ipv6:proto=http2;http:ssl

(Note the "proto=http" above refers to HTTP/1.1 versus HTTP/2, not HTTP versus HTTPS. The above "443:proto=http2;http:ssl" is saying "serve both HTTP/2 and HTTP/1.1 over SSL on port 443.")

On Mon, Oct 4, 2021 at 12:41 PM Nick Dunkin <Ni...@vecima.com>> wrote:
Hi

Disclaimer: I am very new to HTTP/2 so I may be making very basic errors/assumptions here.

I am trying to enable and test HTTP/2 on ATS 9.0.x.  I am using CURL with the “--http2-prior-knowledge” flag but I am not getting good results.

From CURL I get the following error:
* Recv failure: Connection reset by peer
* Failed receiving HTTP2 data
* Send failure: Broken pipe
* Failed sending HTTP2 data
* Connection #0 to host 10.211.55.6 left intact
curl: (56) Recv failure: Connection reset by peer
And from ATS I am seeing the following warnings in diags.log

[Aug 22 15:45:22.334] [ET_NET 0] WARNING: Unregistered protocol type 1

One question I have is whether I need HTTPS to even be testing HTTP/2.  The internet seems a little vague on this question.

Any pointers from the community would be most welcome.

Thanks

Nick

Nick Dunkin
Director, Software Engineering
Manager – Architecture and New Product Introduction
o:  +1 678.258.4071
e: nick.dunkin@vecima.com<ma...@vecima.com>

[cidimage001.png@01D6CC8C.6FC5A580]


Re: HTTP/2 and ATS

Posted by Robert O Butts <ro...@apache.org>.
Yes, HTTP/2 requires HTTPS. It is technically possible to do H2 over HTTP,
but nobody in the industry supports it, as there's no legitimate reason to.
So for all practical purposes, yes, H2 requires HTTPS.

What's your URL? Are you requesting `http://foo` or `https://foo`? Needs to
be https, as above.

Second, what ports are you serving what protocols on, with ATS? What does
your records.config proxy.config.http.server_ports look like?

https://docs.trafficserver.apache.org/en/8.1.x/admin-guide/files/records.config.en.html#proxy-config-http-server-ports

It should look something like:

CONFIG proxy.config.http.server_ports STRING 80 80:ipv6
443:proto=http2;http:ssl 443:ipv6:proto=http2;http:ssl

(Note the "proto=http" above refers to HTTP/1.1 versus HTTP/2, not HTTP
versus HTTPS. The above "443:proto=http2;http:ssl" is saying "serve both
HTTP/2 and HTTP/1.1 over SSL on port 443.")


On Mon, Oct 4, 2021 at 12:41 PM Nick Dunkin <Ni...@vecima.com> wrote:

> Hi
>
>
>
> Disclaimer: I am very new to HTTP/2 so I may be making very basic
> errors/assumptions here.
>
>
>
> I am trying to enable and test HTTP/2 on ATS 9.0.x.  I am using CURL with
> the “--http2-prior-knowledge” flag but I am not getting good results.
>
>
>
> From CURL I get the following error:
>
> * Recv failure: Connection reset by peer
>
> * Failed receiving HTTP2 data
>
> * Send failure: Broken pipe
>
> * Failed sending HTTP2 data
>
> * Connection #0 to host 10.211.55.6 left intact
>
> curl: (56) Recv failure: Connection reset by peer
>
> And from ATS I am seeing the following warnings in diags.log
>
>
>
> [Aug 22 15:45:22.334] [ET_NET 0] WARNING: Unregistered protocol type 1
>
>
>
> One question I have is whether I need *HTTPS* to even be testing HTTP/2.
> The internet seems a little vague on this question.
>
>
>
> Any pointers from the community would be most welcome.
>
>
>
> Thanks
>
>
>
> Nick
>
>
>
> *Nick Dunkin*
>
> Director, Software Engineering
>
> Manager – Architecture and New Product Introduction
>
> *o: * *+1 678.258.4071*
>
> *e:* nick.dunkin@vecima.com
>
>
>
> [image: cidimage001.png@01D6CC8C.6FC5A580]
>
>
>