curl(1) -sS --user-agent "${user_agent}" -o /dev/null --max-time 5 -w "%{http_code}\n%{time_total}" "${url}"
transfer a URL
-s, --silent
       Silent or quiet mode. Don't show progress meter or error messages.  Makes Curl mute.
-S, --show-error
       When used with -s it makes curl show an error message if it fails.
-A, --user-agent <agent string>
       (HTTP) Specify the User-Agent string to send to the HTTP server. Some badly done CGIs fail if this
       field isn't set to "Mozilla/4.0". To encode blanks in the string, surround the string with  single
       quote marks. This can also be set with the -H, --header option of course.

       If this option is set more than once, the last one will be the one that's used.
-o, --output <file>
       Write  output  to <file> instead of stdout. If you are using {} or [] to fetch multiple documents,
       you can use '#' followed by a number in the <file> specifier. That variable will be replaced  with
       the current string for the URL being fetched. Like in:

         curl http://{one,two} -o "file_#1.txt"

       or use several variables like:

         curl http://{site,host}.host[1-5].com -o "#1_#2"

       You may use this option as many times as the number of URLs you have.
-m, --max-time <seconds>
       Maximum time in seconds that you allow the whole operation to take.  This is useful for preventing
       your batch jobs from hanging for hours due to slow networks or links going  down.   See  also  the
       --connect-timeout option.

       If this option is used several times, the last one will be used.
-w, --write-out <format>
       Defines  what  to  display  on  stdout after a completed and successful operation. The format is a
       string that may contain plain text mixed with any number of variables. The string can be specified
       as  "string",  to  get  read from a particular file you specify it "@filename" and to tell curl to
       read the format from stdin you write "@-".
source manpages: curl