2017-01-03 5 views
0

がトリガされます。なぜそれが起こるのですか?はなぜサーバーコールバックは、私は以下のような簡単なセットアップを持って複数回

ブラウザがサーバーに接続してデータを送信していると思われますが、私のコードのどこにでもres.end()を呼び出していないため、応答はありません。それで、しばらく待ってからリクエストを再送します。それが正しいか?もしそうなら、どうすればそれがより低いレベルで起こっているのを見ることができますか?

+1

'res'をダンプすることができます。通常、1ページの読み込みでは、3つ以上のHTTP要求がトリガーされます(通常は少なくとも2つ)。 1つのリクエストがメインリクエストです。もう1つはタブアイコンです。あなたがHTTPSをサポートしているかどうかを調べるためのもう一つの試み(これは、インターネットを安全にするためにあらゆる場所のHTTPS努力の一部です)。これはあなたのページがメディアコンテンツ(イメージ、ビデオ、サウンドなど)を持たず、外部のCSSやjsをもたないプレーンテキストのページであると仮定しています。 – slebetman

+0

@slebetman、ありがとうございます。しかし、これらのリクエストは約5分の間隔で発生しており、ブラウザでエラーが表示されるまでに約10件あります。 –

答えて

1

あなたの疑惑は正しいです。 HTTP/1.1 memoによれば:

HTTP/1.1クライアントは、要求の本体を含む要求を送信 が、「100-継続」期待していリクエストヘッダフィールドを含まない場合、および場合クライアントは直接HTTP/1.1オリジンサーバに接続されて ではなく、クライアントがサーバーから任意のステータスを受け取る前に近い 接続を見れば、 クライアントが要求を再試行する必要があります。

ブラウザは、ある程度の期間の後に、要求の再試行を行います。 Node.jsの側から

http.createServerコールバックが持つEventEmitterモデルで作業し、サーバーが要求をとるたびに呼ばれています。応答オブジェクトで何が起こっているのかを調べたい場合は、--inspectフラグでサーバを起動してデバッグすることができます。

関連する問題