0

ファイルを含む CDN があり、事前定義されたファイル リストに基づいてファイルの存在をチェックする小さなツールを作成したいと考えています。

WebRequest を使ってみたのですが、どうやらファイルをダウンロードするようです。ダウンロードせずにコンテンツの長さを取得したいだけです。(curl -I と同様)

ありがとう

4

1 に答える 1

2

その情報を取得するためにHEADリクエストを行うことができる場合があります。

w3.orgからの引用:

HEADメソッドはGETと同じですが、サーバーが応答でメッセージ本文を返さないようにする必要があります。HEADリクエストに応答してHTTPヘッダーに含まれるメタ情報は、GETリクエストに応答して送信される情報と同一である必要があります。このメソッドは、エンティティ本体自体を転送せずに、リクエストによって暗示されるエンティティに関するメタ情報を取得するために使用できます。この方法は、ハイパーテキストリンクの有効性、アクセシビリティ、および最近の変更をテストするためによく使用されます。

HEAD要求への応答は、応答に含まれる情報を使用して、そのリソースから以前にキャッシュされたエンティティを更新できるという意味で、キャッシュ可能である場合があります。新しいフィールド値が、キャッシュされたエンティティが現在のエンティティと異なることを示している場合(Content-Length、Content-MD5、ETag、またはLast-Modifiedの変更によって示されるように)、キャッシュはキャッシュエントリを古いものとして処理する必要があります。

私が他の場所で読んだことから、content-lengthはHEAD応答に存在するはずです。ただし、「すべき」とは、必ずしも常にそうであることを意味するわけではありません(HEADリクエストを含むContent-Lengthヘッダーを参照してください) 。

于 2012-12-10T14:11:19.057 に答える