1

ページの読み込みに必要な http リクエストの数を減らすと、ページの読み込みにかかる合計時間が短縮されることを説明している Web ページ パフォーマンスに関する記事がいくつかあります。http リクエストが非同期で並行して発生する場合、なぜそれが起こるのか、私にはよくわかりません。

私が読んだ 1 つの記事では、ブラウザーが 1 つのホスト名に対して行う要求の数を意図的に制限しているように見えました。これはスロットリングと関係があると推測していますが、確認できるものは何も見つかりませんでした。

私の直感では、http リクエストの構築にはクライアントで時間がかかる必要があることが示唆されています。そのため、待機時間は非同期ですが、各リクエストの構築には少し時間がかかり、リクエストの数が増えるにつれてかなりの時間がかかります。しかし、これはただの勘です。

http リクエストが少ないほどパフォーマンスが向上する理由を説明できる人はいますか?

4

3 に答える 3

2

各 HTTP 要求/応答には、膨大なオーバーヘッドがあります。要求と応答の両方にヘッダー ブロックがあるだけでなく、tcp/ip レイヤーには、http プロトコルを強調するさまざまなハンドシェイクとヘッダーもあります。

興味がある方は、 Wiresharkをインストールして、それを使用してネットワーク上を流れるネットワーク トラフィックの種類を調べてから、一般的な Web サイトにアクセスすることをお勧めします。かなり多いです。

于 2012-07-05T20:24:21.310 に答える
1

すべての要求/応答ペアには、クライアントからサーバーへ、またはその逆に生成、転送、および処理する必要があるhttpヘッダーデータが含まれています。ページの読み込みに必要なリクエストの数を減らすと、このオーバーヘッドが減ります。

さらに、多くのブラウザは、同じホストに送信される同時リクエストの数を抑制します。FireFoxのネットワーク.http.pipelining.maxrequestsおよびnetwork.http.max-connections-per-server構成パラメーターのfxを参照してください。ブラウザはページをロードするためにより多くのリクエストを発行しますが、これらのリクエストをパイプライン化し、場合によってはより多くのTCPストリームをホストに接続します。接続を確立するには、3ウェイハンドシェイクのラウンドトリップを待つ必要があり、ページの読み込み時間がさらに長くなります。

実際の例:5人を派遣して、小さなキッチンからミルク、砂糖、スプーンを入れたコーヒーを1杯用意します。たった一人でもう一度やり直してください。

于 2012-07-05T20:50:20.610 に答える
0

HTTP は同期です。AJAX などの手法を使用して Webアプリケーションを非同期にすることができます。つまり、HTTP リクエストをページに対して非同期に行うことができます。ただし、HTTP 要求を発行したら、座って応答を待ちます。

于 2012-07-05T20:15:05.700 に答える