You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js HTTP服务器加载缓慢及请求计数翻倍问题咨询

Node.js HTTP服务器问题解答

一、浏览器等待10分钟才显示结果的原因

你的代码中调用了response.write()发送响应内容,但没有调用response.end()来结束HTTP响应。HTTP协议要求每个请求必须伴随完整的响应结束标记,Node.js的HTTP服务器在调用end()之前,不会向客户端发送响应结束的信号,浏览器会一直处于等待状态,直到连接超时(约10分钟)才会尝试显示已接收的内容。

二、刷新时requestsCount递增两次的原因

浏览器在请求页面时,会自动额外发送一个GET /favicon.ico请求,用于获取网站的标签页图标。所以每次刷新浏览器,实际上会向服务器发送两个请求:一个是页面本身的GET /请求,另一个是GET /favicon.ico请求,导致requestsCount被递增两次,显示结果为2、4、6这类偶数。

修正后的代码

const http = require('http')

let requestsCount = 0
const server = http.createServer((request, response) => {
    // 过滤favicon.ico请求,避免计数被额外增加
    if (request.url === '/favicon.ico') {
        response.end()
        return
    }
    requestsCount++
    response.write(`Leo Garsia ${requestsCount}`)
    // 调用end()结束响应,让浏览器及时接收完整结果
    response.end()
})

server.listen(3005, () => {
    console.info('Server is Running on port 3005')
})

内容的提问来源于stack exchange,提问作者Leo Garsia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 05:42:08