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 リクエストで受け取るであろうレスポンスを記述していると仮定します。
構文
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 リクエストを作成します。
curl --head example.com
これはGETリクエストに相当しますが、サーバーはレスポンスにメッセージ本文を記載すべきではありません。
これにより、次のような HTTP リクエストが作成されます。
HEAD / HTTP/1.1
Host: example.com
User-Agent: curl/8.6.0
Accept: */*
サーバーはヘッダーのみで構成される 200 OK レスポンスを返します。
このレスポンスは実質的にリソース自体ではなくリソースを記述するメタデータです(簡潔化のため、この例では一部のキャッシュヘッダーは除外されています)。
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> |