skip to content
Logo
Yurikago Blog

curlでHTTPステータスコードを取得する

/ 2 min read

Table of Contents

curlを実行してウェブページのステータスコードを取得する方法をまとめました。また、ステータスコードを取得するために必要なオプションについて補足します。

動作環境

Terminal window
% curl --version
curl 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.0
Release-Date: 2020-03-11
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp
Features: AsynchDNS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz Metalink MultiSSL NTLM SPNEGO SSL SSPI TLS-SRP

コマンド

Terminal window
% 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

サンプル

Terminal window
% curl -LI https://httpstat.us/200 -o /dev/null -w '%{http_code}\n' -s

結果

200