このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

HEAD リクエストメソッド

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.

**HEAD**は HTTP のメソッドで、リソースのメタデータをヘッダーの形で要求します。このヘッダーは、代わりに GET メソッドが使用された場合にサーバーが送信するであろうものです。 この方法は、URL が大量のダウンロードを生成する可能性がある場合に使用できます。例えば、HEAD リクエストで Content-Length ヘッダーを読み取り、ファイルサイズを確認した後、GET でファイルをダウンロードできます。

HEAD リクエストへのレスポンスが、キャッシュされた URL のレスポンスが古くなったことを示した場合、GET リクエストが行われなくても、キャッシュされたコピーは無効化されます。

警告: HEAD リクエストへのレスポンスに本体が含まれる場合、そのレスポンス本体は無視されなければなりません。 誤った本文を記述する可能性がある表現ヘッダーは、同様の GET リクエストで受け取るであろうレスポンスを記述していると仮定します。

リクエストの本文 なし
成功時のレスポンスの本文 なし
安全性 あり
べき等性 あり
キャッシュ
HTML フォームでの使用 不可

構文

http
HEAD <request-target>["?"<query>] HTTP/1.1
<request-target>

Host ヘッダーで提供される情報と組み合わせたときの、リクエストのターゲットリソースを識別します。 これは元のサーバーへのリクエストにおいては絶対パス(/path/to/file.html など)であり、プロキシーへのリクエストにおいては絶対 URL(http://www.example.com/path/to/file.html など)です。

<query> 省略可

疑問符 ? で始まるオプションのクエリー成分。 多くの場合、key=value の組の形で識別情報を保持するために使用されます。

リソースのメタデータの受け取りに成功

次の curl コマンドは example.com に対して HEAD リクエストを作成します。

bash
curl --head example.com

これはGETリクエストに相当しますが、サーバーはレスポンスにメッセージ本文を記載すべきではありません。 これにより、次のような HTTP リクエストが作成されます。

http
HEAD / HTTP/1.1
Host: example.com
User-Agent: curl/8.6.0
Accept: */*

サーバーはヘッダーのみで構成される 200 OK レスポンスを返します。 このレスポンスは実質的にリソース自体ではなくリソースを記述するメタデータです(簡潔化のため、この例では一部のキャッシュヘッダーは除外されています)。

http
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Date: Wed, 04 Sep 2024 10:33:11 GMT
Content-Length: 1234567

仕様書

Specification
HTTP Semantics
# HEAD

ブラウザーの互換性

関連情報