Skip to content
text
URL(1)                           User Commands                          URL(1)

NAME
       url

SYNOPSIS
       url [options] [METHOD] URL [items,...]

DESCRIPTION
       URL: A simple client HTTP test program

       url [options] [METHOD] URL [items,...]

         --benchmark 3
         --ca file
         --cert file
         --chunk size
         --ciphers cipher,...
         --clients count
         --continue
         --cookie CookieString
         --count NUM
         --debug
         --header 'key: value'
         --key file
         --nofollow
         --printable
         --protocol 0|1
         --quiet
         --range byteRanges
         --retries count
         --save file
         --show [HBhb]
         --timeout secs
         --trace file[:type:from]
         --upload
         --verify
         --verbose
         --zero

       The URL program is a pragmatic, simple, compact HTTP test client. It
       does not attempt to implement all the HTTP specifications. It supports
       HTTP/1 keep-alive and transfer-chunking encoding.


ARGUMENTS

       The url command takes an optional METHOD as the first argument. This
       must be an upper case word. If absent, the POST method is used if there
       is supplied body data items and otherwise the GET method is used.

       After the optional method is the required URL. The request URL uses a
       flexible format so you can supply only the essential URL components.
       For example.

           $ url /index.html
           $ url :8080
           $ url /
           $ url https:///index.html


URL

       The request URL is of the form:

           [http://|https://][hostname][:port][/path][?query][#hash]

       All portions of the URL are optional. You can supply just the
       components that are non-default.

       If the HTTP scheme is absent, "http" is used. If the hostname is
       missing, "localhost" is used. If the port is absent, the default HTTP
       port for the relevant scheme is used. If the path is not supplied, "/"
       is used. If the query or hash are absent, they are not used.


REQUEST ITEMS

       Requests can supply body data by appending request items to the command
       line. The following request item formats are supported.

           key=value       Request form parameters.

           {key:value,..} Request form parameters as a JSON string.

           @file           Request body supplied via a file.

           "Literal Data"  Request body as a literal string.

           Header:Value    HTTP headers

       If JSON is supplied, only one JSON item can be provided and a Content-
       Type of application/json will be added to the HTTP request headers.

       If a Key=Value parse are provided, multiple such values can be use and
       a Content-Type of x-www-form-urlencoded will be added to the headers.


SHOW TRACE

       By default, url will display the response HTTP headers and response
       data. This can be modified via the --show command option. Use the
       --quiet or --show "" to squelch outputting the response HTTP headers.


OPTIONS

       --benchmark
              Compute benchmark statistics for the requests.

       --ca file
              Certifiate authority. This is used to validate peer site
              certificates.

       --chunk size
              Send request body data using transfer chunk encoding of this
              maximum size.

       --ciphers cipher,cipher
              List of TLS cipers to use for the request.

       --clients count
              Use the requested number of simulated clients to run
              simultaneous requests. Default is 1.

       --continue
              Continue testing despite request errors.

       --cookie
              Cookie string header.

       --debug
              Enable debug tracing. (Shortcut -d).

       --header key:value
              Include the HTTP header key:value in the requeset.

       --key file
              Use the supplied private key when sending client certificates to
              the server.

       --nofollow
              Do not follow redirections. Default is to follow.

       --printable
              If the returned content contains binary data, convert to a
              printable hex format.

       --protocol 0|1
              If set to 0, use the HTTP/1.0 protocol, otherwise use the
              default HTTP/1.1

       --quiet
              Do not display HTTP response headers. Alias for --show "".

       --range byteRanges
              Add to the request the specified byte ranges.

       --retries count
              Define the retry limit for the request. This is used to retry
              requests and to follow redirections.  Default is 3.

       --save filename
              Save the response content to the given filename.

       --show [HBhb]
              Show the request headers/body (HB) and response headers/body
              (hb). Defaults to --show h. Set to an empty string to disable
              all tracing.

       --timeout secs
              Timeout the request if it does not complete in the required
              number of seconds.

       --trace file[:types[:sources]]
              Name the Ioto trace file. The types are a comma separated list
              of message types. Valid types include: info, debug, error, and
              trace. Sources are the code module names originating the trace
              messages. You can use "all" for types and sources to match all
              types/sources. You can also use "!type" and "!source" to negate
              a type or source.

       --upload
              POST the supplied data items (or files) using multipart-mime
              file upload.

       --verify
              Verify the server certificate using the certificate authority
              bundle supplied with the --ca file option. The default is to not
              verify.

       --verbose
              Run with more verbose tracing. (Shortcut -v).

       --version
              Output the product version number.


REPORTING BUGS
       Report bugs to dev@embedthis.com.

COPYRIGHT
       Copyright (c) Embedthis Software.

url                                June 2024                            URL(1)