为什么Chrome浏览器发送两个HTTP请求,而Firefox发送一个?

时间:2020-05-13 03:20:22

标签: javascript node.js express http favicon

编辑:所以第二个响应肯定是favicon.ico问题,但是为什么会在chrome中而不是在Firefox中发生?

原件: 我正在为node.js学习express,并为中间件练习路由。我的问题是,即使我没有发送请求,也没有调用next(),“ /”路由仍在通过。在中间件之前。同样,当我向“ /”路由发送请求时,它也会发送双重响应。它是在Chrome中而不是在Firefox中执行的,因此有人可以解释其中的区别吗?

const express = require('express');

const app = express();

app.use('/users', (req, res, next) => {
    console.log('This handles /users route');
    res.send('<h1>This handles /users route</h1>');
});

app.use('/', (req, res, next) => {
    console.log('This handles / route');
    res.send('<h1>This handles / route</h1>');
});

app.listen(3000);

如果我导航到localhost:3000 / users,则页面显示html正确,但控制台记录:

  • 这处理/ users路由
  • 这可以处理/路由

如果我导航到localhost:3000 /,则页面显示html正确,但控制台记录:

  • 这可以处理/路由
  • 这可以处理/路由

1 个答案:

答案 0 :(得分:1)

Chrome会默认请求网站favicon.ico。像这样:

http://localhost:3000/favicon.ico

request

received