
.. GENERATED by help2rst.py.  DO NOT EDIT DIRECTLY.

.. program:: nghttp

nghttp(1)
=========

SYNOPSIS
--------

**nghttp** [OPTIONS]... <URI>...

DESCRIPTION
-----------

HTTP/2 client

.. describe:: <URI>

    Specify URI to access.

OPTIONS
-------

.. option:: -v, --verbose

    Print   debug   information   such  as   reception   and
    transmission of frames and name/value pairs.  Specifying
    this option multiple times increases verbosity.

.. option:: -n, --null-out

    Discard downloaded data.

.. option:: -O, --remote-name

    Save  download  data  in  the  current  directory.   The
    filename is  derived from  URI.  If  URI ends  with '*/*',
    'index.html'  is used  as a  filename.  Not  implemented
    yet.

.. option:: -t, --timeout=<DURATION>

    Timeout each request after <DURATION>.  Set 0 to disable
    timeout.

.. option:: -w, --window-bits=<N>

    Sets the stream level initial window size to 2\*\*<N>-1.

.. option:: -W, --connection-window-bits=<N>

    Sets  the  connection  level   initial  window  size  to
    2\*\*<N>-1.

.. option:: -a, --get-assets

    Download assets  such as stylesheets, images  and script
    files linked  from the downloaded resource.   Only links
    whose  origins are  the same  with the  linking resource
    will be downloaded.   nghttp prioritizes resources using
    HTTP/2 dependency  based priority.  The  priority order,
    from highest to lowest,  is html itself, css, javascript
    and images.

.. option:: -s, --stat

    Print statistics.

.. option:: -H, --header=<HEADER>

    Add a header to the requests.  Example: :option:`-H`\':method: PUT'

.. option:: --trailer=<HEADER>

    Add a trailer header to the requests.  <HEADER> must not
    include pseudo header field  (header field name starting
    with ':').  To  send trailer, one must use  :option:`-d` option to
    send request body.  Example: :option:`--trailer` 'foo: bar'.

.. option:: --cert=<CERT>

    Use  the specified  client certificate  file.  The  file
    must be in PEM format.

.. option:: --key=<KEY>

    Use the  client private key  file.  The file must  be in
    PEM format.

.. option:: -d, --data=<PATH>

    Post FILE to server. If '-'  is given, data will be read
    from stdin.

.. option:: -m, --multiply=<N>

    Request each URI <N> times.  By default, same URI is not
    requested twice.  This option disables it too.

.. option:: -u, --upgrade

    Perform HTTP Upgrade for HTTP/2.  This option is ignored
    if the request URI has https scheme.  If :option:`-d` is used, the
    HTTP upgrade request is performed with OPTIONS method.

.. option:: --extpri=<PRI>

    Sets RFC 9218 priority of  given URI.  <PRI> must be the
    wire format  of priority  header field  (e.g., "u=3,i").
    This  option  can  be  used  multiple  times,  and  N-th
    :option:`--extpri` option sets priority of N-th URI in the command
    line.  If  the number  of this option  is less  than the
    number of  URI, the last  option value is  repeated.  If
    there  is   no  :option:`--extpri`  option,  urgency   is  3,  and
    incremental is false.

.. option:: -M, --peer-max-concurrent-streams=<N>

    Use  <N>  as  SETTINGS_MAX_CONCURRENT_STREAMS  value  of
    remote endpoint as if it  is received in SETTINGS frame.

    Default: ``100``

.. option:: -c, --header-table-size=<SIZE>

    Specify decoder  header table  size.  If this  option is
    used  multiple times,  and the  minimum value  among the
    given values except  for last one is  strictly less than
    the last  value, that minimum  value is set  in SETTINGS
    frame  payload  before  the   last  value,  to  simulate
    multiple header table size change.

.. option:: --encoder-header-table-size=<SIZE>

    Specify encoder header table size.  The decoder (server)
    specifies  the maximum  dynamic table  size it  accepts.
    Then the negotiated dynamic table size is the minimum of
    this option value and the value which server specified.

.. option:: -b, --padding=<N>

    Add at  most <N>  bytes to a  frame payload  as padding.
    Specify 0 to disable padding.

.. option:: -r, --har=<PATH>

    Output HTTP  transactions <PATH> in HAR  format.  If '-'
    is given, data is written to stdout.

.. option:: --color

    Force colored log output.

.. option:: --continuation

    Send large header to test CONTINUATION.

.. option:: --no-content-length

    Don't send content-length header field.

.. option:: --hexdump

    Display the  incoming traffic in  hexadecimal (Canonical
    hex+ASCII display).  If SSL/TLS  is used, decrypted data
    are used.

.. option:: --no-push

    Disable server push.

.. option:: --max-concurrent-streams=<N>

    The  number of  concurrent  pushed  streams this  client
    accepts.

.. option:: --expect-continue

    Perform an Expect/Continue handshake:  wait to send DATA
    (up to  a short  timeout)  until the server sends  a 100
    Continue interim response. This option is ignored unless
    combined with the :option:`-d` option.

.. option:: -y, --no-verify-peer

    Suppress  warning  on  server  certificate  verification
    failure.

.. option:: --ktls

    Enable ktls.

.. option:: --version

    Display version information and exit.

.. option:: -h, --help

    Display this help and exit.



The <SIZE> argument is an integer and an optional unit (e.g., 10K is
10 * 1024).  Units are K, M and G (powers of 1024).

The <DURATION> argument is an integer and an optional unit (e.g., 1s
is 1 second and 500ms is 500 milliseconds).  Units are h, m, s or ms
(hours, minutes, seconds and milliseconds, respectively).  If a unit
is omitted, a second is used as unit.

SEE ALSO
--------

:manpage:`nghttpd(1)`, :manpage:`nghttpx(1)`, :manpage:`h2load(1)`
