Node.jsのhttp.createServer()でconsole.log()が2回実行されるのは何故?

2019年 10月 11日

はてなブックマークはてブ
Google+1Google+
PocketPocket
    const port = 3000,
          http = require('http'),
          httpStatus = require('http-status-codes'),
          app = http.createServer((request, response) => {
              console.log('リクエスト受信');
              response.writeHead(httpStatus.OK, {
                  'Content-Type': 'text/html'
              });
          });
    
    app.listen(port);
    
    console.log(`The server has started and is listening on port number: ${port}`);
    

    こういうコードを書いてNode.jsで実行したら、console.logの内容「リクエスト受信」が2回出力されていた。

    不思議に思って調べてみたら、どうやらブラウザ側の挙動で、favicon.icoを取得するためにもう1回リクエストを投げているらしい。

    ためしに以下の1行を追加してみたら、「/」と「/favicon.ico」の2つのURLでアクセスしてることが分かった。

    console.log(request.url)
    カテゴリ:Node.js
    タグ:

    この記事をシェアする

    はてなブックマークはてブ
    Google+1Google+
    PocketPocket

    この記事へのコメント

    このサイトをシェア

    このサイトをシェアするボタンです。

    各記事ごとのシェアは各記事のタイトルの下のボタンから。

    SNSのアカウントのページへのリンクは画面最下部のフッター内にあります。

    意志力を高める5分の瞑想