How does proto h2 work for http2? (haproxy 1.9.7)

I found it by myself. ‘proto h2’ means the server is only opened HTTP2.

With ‘proto h2’,
Client HTTP2 Request --> HTX --> HTTP2 backends.

Without ‘proto h2’,
Client HTTP2 Request --> HTX --> HTTP1.1 backends.

It was the problem of my backends(gunicorn).
Haproxy works fine.

The interesting thing is HTTP1.1 requests to ‘proto h2’ servers.
I guessed HAproxy just puts ‘upgrade’ header, but it converts HTTP1.1 to real HTTP2 packets.