HTTPレスポンスヘッダーの確認方法
301リダイレクトなどの転送設定をした際、正常に反映されているかをHTTPレスポンスのヘッダー情報でステータスコードを確認しておきましょう。
■HTTPレスポンスの内容
ブラウザがサイトを表示する際、HTTPリクエストによってサーバーにファイルの取得を要求し、サーバーが応答してHTTPレスポンスを返します。このリクエストとレスポンスの両方にヘッダー情報が含まれますが、サーバーが返す「HTTPレスポンス」のヘッダー情報でステータスコードを確認することができます。
■HTTP通信
HTTPリクエスト
ヘッダー情報(ユーザーエージェントなど)HTTPレスポンス
ヘッダー情報(ステータスコード、日時など)
レスポンスボディ(HTMLソースのコンテンツなど)
上記の例では「200 OK」と記載されていますが、ファイルが見つかり成功した場合は「200」、ファイルが存在しない場合は「404」、移転した場合は「301」など、3桁の番号のステータスコードが返ってきます。
「HTTPレスポンスヘッダー」は、HTMLコードのヘッダーと間違えやすいですが、HTTP通信のレスポンスに含まれる、メタ情報としてのヘッダーのことですので注意しましょう。
curlコマンドを使用してレスポンスヘッダーを確認する方法
curlは、Windowsではデフォルトでインストールされていますが、Macでも使用することができます。もし入っていなければ、こちらからインストールするとよいでしょう。
→ curl
コマンドブロンプトを開き、以下のように入力してcurlコマンドを実行します。
curl [オプション] [サイトのURL]
コピー
レスポンスのヘッダー情報のみを確認する場合、[-I]のオプションで以下のように入力して使用します。
curl [-I] [サイトのURL]
コピー
例えば、以下のように入力した場合、ヘッダー情報のみを確認することができます。
curl -I https://www.homepage-tukurikata.com/
コピー
■200 OK
小文字の[-i]オプションを指定した場合、ヘッダー情報に加え、レスポンスのボディ部分(HTMLソースのコンテンツなど)も表示されます。
■301 Moved Permanently
非SSLの「HTTP」のURLで実行した場合、当サイトでは「HTTPS」にリダイレクトしているため、次のように「301 Moved Permanently」と表示されます。
加えて、リダイレクトの転送先URLアドレスも表示されます。リダイレクト設定をした場合、このように「200 OK」ではなく、「301」が返ってくることを確認します。
■410 Gone
また、削除したページなどは「410 Gone」と表示されます。
■404 Not Found
存在しないページについては、「404 Not Found」と表示されます。
[オプション]なしで、単純にサイトのURLのみを入力した場合、HTMLソースが返ってきますが、詐欺サイトや悪意のあるサイトなど、何らかの理由でブラウザでは直接アクセスしたくない場合に使用すると便利です。
このcurlコマンドをウェブサイト上で実行できるようにしているサイトも多くあります。そのようなサイトを利用して、ウェブサイト上からチェックしてみるのもよいでしょう。
サイト運営に役立つcurlコマンドの一覧
このcurlコマンドには、以下のような便利な使い方があります。
■[-O]オプションでファイルとしてダウンロード
単にページのレスポンスを確認するだけの場合は、URLを指定して実行するだけで十分ですが、パソコンにダウンロードする場合は、outputの[-O]オプションを使用します。
例えば、このページをダウンロードする場合は以下のように指定します。
curl -O https://www.homepage-tukurikata.com/hp/http-response-header.html
コピー
ただし、書き込みが禁止されているフォルダもあるため、適当な階層に移動してからcurlを実行するとよいでしょう。
■[-K]オプションで複数の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のリストをパソコンにダウンロードすることができます。
ただし、「.html」などのファイル名がないとダウンロードできず、エラーになるため、動的なサイトについてはエラーになると思います。
トップページなどは、「index.html」などと指定する必要があるので注意しましょう。また、ダウンロードする際は、フォルダを作成してlist.txtを作成したのち、そのフォルダに「cd」で移動した上でcurlを実行するとうまくいきます。
■curlコマンドのオプション一覧
オプションについては、「curl -help」や「curl --help all」などで一覧が表示できるので、確認してみることをおすすめします。
ChromeのDevToolsでレスポンスヘッダーを確認する方法
GoogleブラウザのChromeのDevToolsでも、ヘッダー情報を確認することができます。ブラウザ右上にある3点リーダから、「その他のツール」→「デベロッパーツール」を選択して起動します。
この状態で、ブラウザのアドレスバーに調査したい「URL」を直接入力してアクセスします。すると、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
(窓に chrome://version と入力。)
サイトによっては、ブラウザ以外のロボットのアクセスを拒否している場合があるため、正常に表示されない場合はDevToolsを使用されることをおすすめします。