トラフィックを減らして速度を向上させるために、http取得要求、ヘッダーの読み取り、本文の取得を行う機会はありますか? 私はこのコードを使用します。本文を取得せずにHTTP GETリクエストでヘッダーのみを取得する方法
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(u1);
request.AllowAutoRedirect = true;
request.Timeout = 30000;
request.Method = "GET";
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36";
request.KeepAlive = true;
HttpWebResponse response;
using (response = (HttpWebResponse)request.GetResponse())
{
var res = response.ResponseUri.ToString();
}
だから私は、結果だけのURLが必要です。リダイレクト(Locationヘッダー)がある場合は、結果のURLを取得します。しかし、私は体を必要としません。レスポンスボディなしで結果を得るために、GETメソッド(HEADメソッドではない)で応答を得るのは本当ですか?
「HEAD」リクエストについて知る必要があります。レスポンスボディは(少なくとも部分的に)すでにGETで途中にあります。それを無視することはできますが、それでもやはり不要な帯域幅が必要です。 – spender
@spenderでも良い点ですが、ヘッダーを読んでから接続を落とすと、ワイヤが実際に転送される可能性があります。それは確かに悪い習慣とハッキーだろう。 – LB2
@ LB2:接続をドロップするとコストも隠されています。 HTTP 1.1のパイプライン処理が中断され、本当に物事を荒らしているときは、TIME_WAITの期間中にポートを再利用することができず、ポートが枯渇する可能性があります。 – spender