curlでHTTPステータスコードを取得する
/ 2 min read
Table of Contents
curlを実行してウェブページのステータスコードを取得する方法をまとめました。また、ステータスコードを取得するために必要なオプションについて補足します。
動作環境
% curl --versioncurl 7.69.1 (x86_64-w64-mingw32) libcurl/7.69.1 OpenSSL/1.1.1e (Schannel) zlib/1.2.11 libidn2/2.3.0 libssh2/1.9.0 nghttp2/1.40.0Release-Date: 2020-03-11Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftpFeatures: AsynchDNS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz Metalink MultiSSL NTLM SPNEGO SSL SSPI TLS-SRP
コマンド
% curl -LI ステータスコードを取得したいURL -o /dev/null -w '%{http_code}\n' -s
オプションの説明
-L, --location
リダイレクトされた場合はリダイレクト先のステータスコードを取得する
※ --head
と同時に指定するとリクエストした全てのドキュメントのヘッダーを取得する
-I, --head
HTTPメソッドのHEADでリクエストしてドキュメントのヘッダーのみ取得する
-o, --output <file>
標準出力の代わりに file に出力を書き込む
/dev/null はUnix系OSにおけるスペシャルファイルの1つでそこに書き込んだデータを全て捨てる
-w, --write-out <format>
取得した情報を整形して表示する
%{http_code} は最後に取得したHTTPステータスコードを取得する
v7.18.2からhttp_codeのエイリアスであるresponse_codeが追加された
-s, --silent
進行状況やエラーメッセージを表示しない
参考: https://curl.haxx.se/docs/manpage.html
サンプル
% curl -LI https://httpstat.us/200 -o /dev/null -w '%{http_code}\n' -s
結果
200