HTTPレスポンスヘッダーの確認方法

(更新 )

301リダイレクトなどの転送設定をした際、正常に反映されているかをHTTPレスポンスのヘッダー情報でステータスコードを確認しておきましょう。

■HTTPレスポンスの内容

HTTPレスポンスの内容

ブラウザがサイトを表示する際、HTTPリクエストによってサーバーにファイルの取得を要求し、サーバーが応答してHTTPレスポンスを返します。このリクエストとレスポンスの両方にヘッダー情報が含まれますが、サーバーが返す「HTTPレスポンス」のヘッダー情報でステータスコードを確認することができます。

■HTTP通信

  • HTTPリクエスト
    ヘッダー情報(ユーザーエージェントなど)

  • HTTPレスポンス
    ヘッダー情報(ステータスコード、日時など)
    レスポンスボディ(HTMLソースのコンテンツなど)

上記の例では「200 OK」と記載されていますが、ファイルが見つかり成功した場合は「200」、ファイルが存在しない場合は「404」、移転した場合は「301」など、3桁の番号のステータスコードが返ってきます。

「HTTPレスポンスヘッダー」は、HTMLの<head>要素と間違えやすいですが、これはHTTP通信のレスポンスに含まれるメタ情報(プロトコルヘッダー)のことなので注意しましょう。

curlコマンドを使用してレスポンスヘッダーを確認する方法

curlは、Windows 10/11でデフォルトで搭載されており、macOSにも標準でプリインストールされています。もし古いWindows環境などで入っていなければ、公式サイトからダウンロードしてインストールするとよいでしょう。

→ curl

コマンドプロンプトを開き、以下のように入力してcurlコマンドを実行します。

curl [オプション] [サイトのURL]

レスポンスのヘッダー情報のみを確認する場合、[-I]のオプションで以下のように入力して使用します。

curl -I [サイトのURL]

例えば、以下のように入力した場合、ヘッダー情報のみを確認することができます。

curl -I https://www.homepage-tukurikata.com/

■200 OK

curlコマンドのヘッダー情報

小文字の[-i]オプションを指定した場合、ヘッダー情報に加え、レスポンスのボディ部分(HTMLソースのコンテンツなど)も表示されます。

■301 Moved Permanently

非SSLの「HTTP」のURLで実行した場合、当サイトでは「HTTPS」にリダイレクトしているため、次のように「301 Moved Permanently」と表示されます。

301リダイレクトの例

加えて、リダイレクトの転送先URLアドレスも表示されます。リダイレクト設定をした場合、このように「200 OK」ではなく、「301」が返ってくることを確認します。

■410 Gone

また、削除したページなどは「410 Gone」と表示されます。

410 Goneの例

■404 Not Found

存在しないページについては、「404 Not Found」と表示されます。

404 Not Foundの例

[オプション]なしで、単純にサイトのURLのみを入力した場合、HTMLソースが返ってきます。

このcurlコマンドをウェブサイト上で実行できるようにしているサイトも多くあるので、そのようなサービスを利用して、ブラウザでチェックしてみるのもよいでしょう。

サイト運営に役立つcurlコマンドの一覧

このcurlコマンドには、以下のような便利な使い方があります。

■[-O]オプションでファイルとしてダウンロード

単にページのレスポンスを確認するだけの場合はURLを指定して実行するだけで十分ですが、パソコンにダウンロードする場合は大文字のオーの[-O]オプションを使用します。

例えば、このページをダウンロードする場合は以下のように指定します。

curl -O https://www.homepage-tukurikata.com/hp/http-response-header.html

ただし、書き込みが禁止されているフォルダもあるため、デスクトップなど適当な階層に移動してからcurlを実行するとよいでしょう。

■[-K]オプションで複数のURLをリスト化

また、複数のURLを指定する場合、テキストファイルに「url = ""」として一行ずつ記載します。

テキストファイルに複数のURLを指定

このURLリストのテキストファイルを[-K]オプションで指定して実行します。

例えば、URLリストを「list.txt」として記載し、このリストのレスポンスヘッダーを確認する場合は以下のようになります。

curl -I -K list.txt

すると、リストに記載されたURLのHTTPレスポンスヘッダーを確認することができます。

複数のサイトのレスポンスヘッダーを確認

複数のサイトを運営している場合、サイトが正常に機能しているかを簡単にチェックすることができます。

チェックする数が多い場合、[-w]のオプションを使用し、チェックしたURLと改行も追加しておくと分かりやすいでしょう。

curl -I -K list.txt -w "%{url_effective}\n\n"

また、複数のURLのリストをパソコンにダウンロードする場合、[--remote-name-all]などのオプションを使用して以下のように指定します。

curl --remote-name-all -K list.txt

すると、テキストファイルに記載したURLのリストをパソコンにダウンロードすることができます。

URLのリストをパソコンにダウンロード

ただし、remote-name-allはURLの末尾をファイル名にして保存するため、https://example.com/のように、ファイル名が含まれていないURLの場合には保存名を決められずにエラーとなります。そのため、トップページなどは「https://example.com/index.html」などと指定する必要があるので注意しましょう。

また、ダウンロードする際は、フォルダを作成してlist.txtを作成したのち、そのフォルダに「cd」で移動した上でcurlを実行するとうまくいきます。

■curlコマンドのオプション一覧

curlコマンドのオプション一覧

オプションについては、「curl -h」や「curl --help」、「curl --help all」などで一覧を表示できるので確認してみることをおすすめします。

ChromeのDevToolsでレスポンスヘッダーを確認する方法

GoogleブラウザのChromeのDevToolsでも、ヘッダー情報を確認することができます。ブラウザ右上にある3点リーダから、「その他のツール」→「デベロッパーツール」を選択して起動します。

デベロッパーツールの起動

この状態で、ブラウザのアドレスバーに調査したい「URL」を入力してアクセスするか、すでにページを開いている場合は「再読み込み(リロード)」します。すると、DevToolsの「ネットワーク」のタブで以下のように表示されます。

DevToolsでのステータス情報の確認

もし、リダイレクト設定をしている場合は「301」のステータス情報が表示されるはずです。その後、リダイレクト先に転送されてサイトが表示され、「200」のステータス情報が表示されます。

curlコマンドもDevToolsもどちらでも簡単に確認できますが、HTTPリクエストを送信する際のユーザーエージェントがそれぞれ異なり、当サイトの環境では以下のようになっています。

■Curlコマンドの場合

curl/7.83.1
([-v]のオプションでUser-Agentを確認できます。)

■Chromeの場合

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36
(DevToolsのネットワークタブで任意のリクエスト(Name)をクリックし、Request Headersの項目から確認できます。)

サイトによっては、ブラウザ以外のロボットのアクセスを拒否している場合があるため、正常に表示されない場合はDevToolsを使用されることをおすすめします。