web-dev-qa-db-ja.com

HTTPの「HEAD」動詞はWeb開発に役立ちますか?

'HEAD'動詞のw3.org仕様 を読みましたが、何かが足りないと思います。それがどのように役立つかわかりません。

HTTP'HEAD '動詞はWeb開発に役立ちますか?

もしそうなら、どのように?

48
Dan Esparza

から RFC2616

このメソッド(HEAD)は、エンティティ本体自体を転送せずに、要求によって暗黙的に示されるエンティティに関するメタ情報を取得するために使用できます。この方法は、ハイパーテキストリンクの有効性、アクセシビリティ、および最近の変更をテストするためによく使用されます。

HEADがGETよりも優先される理由は、応答にメッセージ本文がないため、コンテンツがまったく変更されたかどうかを判断したいシナリオで使用されているためです。通常、最後に変更された時間またはコンテンツの長さはこれを示します。

また、HEADリクエストは、サーバーがマスクされていない限り、サーバーのセットアップに関する情報を提供します(IIS/Apacheなど)。もちろん、これはすべての応答で利用できますが、 HEADは、特に応答のサイズがわからない場合に推奨されます。HEADは、サイトが稼働しているかどうかを判断する最も簡単な方法でもあります。ここでも、メッセージ本文の関連性がないため、HEADが理想的な候補になります。

これについてはよくわかりませんが、RSS/ATOMフィードリーダーはGETを介してHEAD HEAD $ ===を使用して、フィードの内容が変更されたかどうかを確認します。

50
Vineet Reynolds

HTTP HEADは、大きなデータのHTTP PUT/POSTを実行する前に、Webサーバーへの事前認証にも使用できます。最初のHEADリクエストなし、大きなデータをWebサーバーに2回送信することになります(最初のリクエストでは、WWW認証ヘッダーを使用して401の不正な応答が返されるため)。

24
Peter Sladek

これは主に、ブラウザとプロキシが、すべてをダウンロードせずにWebドキュメントのキャッシュされたコピーを使用できるかどうかを判断するためのものです(キャッシュの目的を損なうことになります)。

3
chaos