8

request.url着信HTTPリクエストごとに現在のデータをコンソールに記録する単純なNode.jsアプリを作成しました。Mac OS X MLのChromeでページを更新すると、同じページに対して2つのリクエストが表示されます。なんで?

それに比べて、curlを使用して同じページをリクエストすると、リクエストは1つだけになります。Safariでページを更新した場合の同じリクエスト。

Chromeが同じページに対して2つのリクエストを送信するのはなぜですか?

編集:私はを調べて、request.headers1つの違いを見つけました:acceptヘッダー。

これが最初のリクエストのヘッダーです。特定のマイムのリストを受け入れることに注意してください。

{ host: 'www.pulsr.local:1337',
  connection: 'keep-alive',
  'cache-control': 'max-age=0',
  accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',
  'accept-encoding': 'gzip,deflate,sdch',
  'accept-language': 'en-US,en;q=0.8',
  'accept-charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
  cookie: 'PULSRSESSID=BBtDAWMVgbQZ8lXA6wv4Wg/vwwI=; PULSRSESSID=dsGxP494UxJueit2/u79AFiM5fw=' }

これが2番目のリクエストです。今回はすべてを受け入れます

{ host: 'www.pulsr.local:1337',
  connection: 'keep-alive',
  'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',
  accept: '*/*',
  'accept-encoding': 'gzip,deflate,sdch',
  'accept-language': 'en-US,en;q=0.8',
  'accept-charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
  cookie: 'PULSRSESSID=VGWRSG9zIokHjA2vLa1b+/fUqu8=; PULSRSESSID=dsGxP494UxJueit2/u79AFiM5fw=' }

編集2:確認したところ、両方のリクエストがGETリクエストであることがわかりました。

4

4 に答える 4

5

Chromeのこのバグは、リクエストごとにファビコンのリクエストを送信しているためだと思います。Firefoxやその他のブラウザは、最初のリクエストでこれを行いますが、キャッシュします。

于 2013-02-07T14:15:13.480 に答える
3

別の回答srcにあるように、画像またはiframeの空の属性が原因である可能性があります。同じ問題が発生しました。1ページの更新のみを実行した場合、Chromiumからのまったく同じページ(ファビコンではない)で4つのリクエストが発生しました。私の場合、タグのhref属性が空であることが原因であることがわかりました。link

<link rel="shortcut icon" href="" />
<link rel="icon" type="image/x-icon" href="" />
<link rel="icon" type="image/png" href="" />

したがって、ページの再読み込みを1回リクエストし、上記の3つのリンクごとに1回リクエストします。

于 2015-04-02T14:11:42.403 に答える
0

Chromeのfirebuglight拡張機能に注意してください..それが私の問題でした

于 2020-04-03T15:42:02.597 に答える
0

src="#"私の場合、ページを2回開く原因となったiframe

<iframe src="#" class="iframe lazyload" id="youtube-player-iframe" allow="autoplay"></iframe>
于 2021-07-07T15:38:20.370 に答える