あるページのステータスコードが知りたく、手軽にcURLを使ってステータスコードだけを抽出することがしたい
curl -LI example.com -o /dev/null -w '%{http_code}\n' -s
option | 概要 |
---|---|
-L | リダイレクトの遷移を追えるようにする |
-I | HTTPレスポンスヘッダーの取得 |
-o | レスポンスボディの出力先を/dev/null に |
-w | レスポンスヘッダの必要な物を取得する |
出力は改行されないので\n
をいれるとよいらしい
-w
で取得できる他の項目は--manual
で知ることができる
$ curl --manual ... -w, --write-out <format> Make curl display information on stdout after a completed trans- fer. The format is a string that may contain plain text mixed with any number of variables. The format can be specified as a literal "string", or you can have curl read the format from a file with "@filename" and to tell curl to read the format from stdin you write "@-". The variables present in the output format will be substituted by the value or text that curl thinks fit, as described below. All variables are specified as %{variable_name} and to output a normal % you just write them as %%. You can output a newline by using \n, a carriage return with \r and a tab space with \t. The output will be written to standard output, but this can be switched to standard error by using %{stderr}. NOTE: The %-symbol is a special symbol in the win32-environment, where all occurrences of % must be doubled when using this op- tion. The variables available are: content_type The Content-Type of the requested document, if there was any. filename_effective The ultimate filename that curl writes out to. This is only meaningful if curl is told to write to a file with the -O, --remote-name or -o, --output option. It's most useful in combination with the -J, --remote-header-name option. (Added in 7.26.0) ftp_entry_path The initial path curl ended up in when logging on to the remote FTP server. (Added in 7.15.4) http_code The numerical response code that was found in the last retrieved HTTP(S) or FTP(s) transfer. In 7.18.2 the alias response_code was added to show the same info. http_connect The numerical code that was found in the last re- sponse (from a proxy) to a curl CONNECT request. (Added in 7.12.4) http_version The http version that was effectively used. (Added in 7.50.0) local_ip The IP address of the local end of the most re- cently done connection - can be either IPv4 or IPv6 (Added in 7.29.0) local_port The local port number of the most recently done connection (Added in 7.29.0) num_connects Number of new connects made in the recent trans- fer. (Added in 7.12.3) num_redirects Number of redirects that were followed in the re- quest. (Added in 7.12.3) proxy_ssl_verify_result The result of the HTTPS proxy's SSL peer certifi- cate verification that was requested. 0 means the verification was successful. (Added in 7.52.0) redirect_url When an HTTP request was made without -L, --loca- tion to follow redirects (or when --max-redir is met), this variable will show the actual URL a redirect would have gone to. (Added in 7.18.2) remote_ip The remote IP address of the most recently done connection - can be either IPv4 or IPv6 (Added in 7.29.0) remote_port The remote port number of the most recently done connection (Added in 7.29.0) scheme The URL scheme (sometimes called protocol) that was effectively used (Added in 7.52.0) size_download The total amount of bytes that were downloaded. size_header The total amount of bytes of the downloaded head- ers. size_request The total amount of bytes that were sent in the HTTP request. size_upload The total amount of bytes that were uploaded. speed_download The average download speed that curl measured for the complete download. Bytes per second. speed_upload The average upload speed that curl measured for the complete upload. Bytes per second. ssl_verify_result The result of the SSL peer certificate verifica- tion that was requested. 0 means the verification was successful. (Added in 7.19.0) stderr From this point on, the -w, --write-out output will be written to standard error. (Added in 7.63.0) stdout From this point on, the -w, --write-out output will be written to standard output. This is the default, but can be used to switch back after switching to stderr. (Added in 7.63.0) time_appconnect The time, in seconds, it took from the start un- til the SSL/SSH/etc connect/handshake to the re- mote host was completed. (Added in 7.19.0) time_connect The time, in seconds, it took from the start un- til the TCP connect to the remote host (or proxy) was completed. time_namelookup The time, in seconds, it took from the start un- til the name resolving was completed. time_pretransfer The time, in seconds, it took from the start un- til the file transfer was just about to begin. This includes all pre-transfer commands and nego- tiations that are specific to the particular pro- tocol(s) involved. time_redirect The time, in seconds, it took for all redirection steps including name lookup, connect, pretransfer and transfer before the final transaction was started. time_redirect shows the complete execu- tion time for multiple redirections. (Added in 7.12.3) time_starttransfer The time, in seconds, it took from the start un- til the first byte was just about to be trans- ferred. This includes time_pretransfer and also the time the server needed to calculate the re- sult. time_total The total time, in seconds, that the full opera- tion lasted. url_effective The URL that was fetched last. This is most mean- ingful if you've told curl to follow location: headers. If this option is used several times, the last one will be used. ...