HTTP APIを扱う場合、時々HEADメソッドとかHEADリクエストが見られますね。それでは、HTTP HEADメソッドとは何ですか?HEADメソッドを使ってHEADリクエストを送信するには、どうしたらいいですか?本文では、HTTP HEADの基本情報を紹介した上、使いやすいAPIクライアントを使用して簡単にHEADリクエストを送信する方法を紹介します。
HTTP HEADメソッドとは
HTTPのHEADメソッドは、HTTP通信でクライアントサイドからサーバーサイドへのリクエストを送信するHTTPメソッドの1つとなり、HTTPヘッダのデータのみ(ボディ受け取りしない)が必要となる時に利用されるHTTPメソッドになります。HTTP HEADリクエストを送信すると、HTTPのヘッダ情報のみがレスポンスとして返され、ボディデータが返されせん。
HTTP HEADメソッドの特徴
HTTP HEADメソッドの主な特徴といえば、次のようなものがあると考えられています:
リソースの情報を取得できる
HEADメソッドを使うと、指定したリソースのメタデータ(ヘッダー情報)を取得できます。メタデータにはコンテンツの種類、サイズ、最終更新日時などの情報が含まれています。
リソースのボディは取得しない
GET メソッドはリソースの本体(コンテンツ)も取得しますが、HEADメソッドはヘッダー情報のみを取得し、本体は取得しません。
リソースの有無を確認できる
HEADリクエストによるレスポンスで、指定したリソースが存在するかどうかを確認できます。404エラーが返ってきた場合はリソースが存在しません。
条件付きリクエストに利用可能
HEADメソッドはIF-Modifeid-Since などのヘッダーと組み合わせて条件付きリクエストとして利用できます。
HTTP HEADの主な用途
上記のHTTP HEADメソッドの特徴から、HEADメソッドは主に以下のような用途で使われることが多いのです。
- リソースの存在確認
- リソースの最終更新日時の取得
- コンテンツネゴシエーション(Accept ヘッダーなど)
- リソースの変更の有無の確認(条件付きリクエスト)
ということで、HEADメソッドは主にウェブリソースの存在確認や最終更新日時の取得、コンテンツネゴシエーションなどの目的で利用されます。リソースの本体が不要な場合に、GETの代わりにHEADを使うことで、レスポンスのデータ量を削減できるメリットがあります。
HTTP HEADとGETとの違い
HTTP の HEAD メソッドと GET メソッドの主な違いは以下の通りです。
レスポンスボディの有無
- GET メソッドは、リソースの本体(レスポンスボディ)を含むレスポンスを受け取ります。
- HEAD メソッドは、レスポンスヘッダーのみを受け取り、レスポンスボディは含まれません。
リソース取得の目的
- GET メソッドは、リソースの表示や検索など、リソース自体を取得することが目的です。
- HEAD メソッドは、リソースのメタデータ(ヘッダー情報)のみを取得することが目的です。
サーバ側の処理
- GET メソッドではサーバ側でリソースの生成や取得が必要になります。
- HEAD メソッドではリソースの本体を生成する必要がないため、サーバ側の処理が軽くなります。
レスポンスデータ量
- GET メソッドはレスポンスボディを含むため、レスポンスデータ量が大きくなる可能性があります。
- HEAD メソッドはレスポンスヘッダーのみなので、レスポンスデータ量が小さくなります。
キャッシュの動作
- GET メソッドの場合、レスポンスボディがキャッシュされます。
- HEAD メソッドの場合、レスポンスヘッダーのみがキャッシュされます。
条件付きリクエストの利用
- HEAD メソッドは If-Modified-Since などの条件付きリクエストヘッダーと組み合わせて使うことができます。
- GET メソッドでも条件付きリクエストは可能ですが、リソースが変更されていない場合でも本体が返されるため、効率が良くありません。
HTTP HEADとGETとも、リソースの情報を取得するためのメソッドなりますが、上記のようにさまざまな違いがありますので、HTTPメソッドを選択する際、両者の違いを理解したままで、適切な通信方式を選択する必要があるのでしょう。

HTTP HEADリクエストを簡単に送信できるApidog
HEADリクエストを送信する必要がある場合、Apidogという優れていたAPI管理ツールは一番簡単な対策だと思います。直感的なUIで、APIのエンドポイントを記入するだけで、HEADリクエストを送信できます。また、自分でAPIを開発する場合は、APIの設計や、APIの仕様書生成、テスト自動化、データモックなど、様々な機能も実現できますので、非常に便利です。
ApidogでHTTP HEADリクエストを送信する場合、Apidogでリクエストを新規に作成して、HTTPメソッドのドロップダウンリストから「HEAD」を選択し、APIエンドポイントURLを記入して、必要に応じてパラメータを記入することで、直感的なGUIからHEADリクエストを簡単に実装できます。

HEADリクエストを送信してレスポンスが返されると、今回のリクエスト情報を保存して、APIエンドポイントのドキュメンテーションを便利に生成することも可能なので、非常に便利です。
まとめ
この記事では、HTTPのHEADメソッドについて詳しく説明しました。HTTPのHEADメソッドは、リソースの情報(メタデータ)のみを取得するためのHTTPメソッドです。レスポンスにはヘッダー情報が含まれますが、本文(ボディ)は含まれません。HEADメソッドの主な用途は、リソースの存在確認、最終更新日時の取得、条件付きリクエストなどです。GETメソッドとは異なり、HEADメソッドはリソースの本文を取得しないため、レスポンスデータ量が小さく、通信の効率化が図れます。
HEADリクエストを送信する方法は、ブラウザの開発者ツール、curlコマンド、プログラミング言語のHTTPライブラリ、HTTPクライアントツールなどがありますが、APIクライアントツールのApidogを使えば、直感的にHEADリクエストを作成・送信でき、レスポンス情報の保存やAPIドキュメントの生成も可能ですので、非常に便利です。