Curl: one-liner to test http/2 support

I'm currently writing an unit test to check if http/2 is supported.

Is there a curl one-liner which checks if http/2 is supported and outputs a response that is easy to parse?

2 answers

  • answered 2018-07-11 07:29 Daniel Stenberg

    HTTP/2 supported:

    $ curl -sI https://curl.haxx.se -o/dev/null -w '%{http_version}\n'
    

    HTTP/2 not supported (instead serving 1.1 in this case):

    $ curl -sI http://curl.haxx.se -o/dev/null -w '%{http_version}\n'
    

  • answered 2018-07-11 08:33 nbari

    Here you can find a list of Tools for debugging, testing and using HTTP/2.

    Probably the easiest one from the command line is:

    $ is-http2 www.cloudflare.com
    

    But that requires npm install -g is-http2-cli

    For testing using curl you may need to compile it using the nghttp library, in macOS this can be done by using brew you could use:

    $ brew install curl --with-nghttp2
    

    And then you could use what @daniel-stenberg suggests in his answer

    $ curl -sI https://curl.haxx.se -o/dev/null -w '%{http_version}\n'
    

    In where you will get a 2 if http2 is supported.