Javascript express中的“onconnect”事件在哪里?
我使用“express”设置了以下中间件:Javascript express中的“onconnect”事件在哪里?,javascript,node.js,express,Javascript,Node.js,Express,我使用“express”设置了以下中间件: app.use(function(request, response, next) { console.log(request.headers["user-agent"]); // etc. }); 因此,在每次请求时,控制台中都会显示用户代理的头。 但现在您知道了用户代理可能会有多混乱: Mozilla/5.0(Linux;Android 7.1.1;Nexus 5X Build/NMF26F)AppleWebKit/537.36(
app.use(function(request, response, next) {
console.log(request.headers["user-agent"]);
// etc.
});
因此,在每次请求时,控制台中都会显示用户代理的头。
但现在您知道了用户代理可能会有多混乱:
Mozilla/5.0(Linux;Android 7.1.1;Nexus 5X Build/NMF26F)AppleWebKit/537.36(KHTML,类似Gecko)Chrome/56.0.2924.59 Mobile Safari/537.36
我真的希望在每个连接上输出一次头,而不是在每个请求上
我该怎么做?每次对HTTP堆栈(服务器)的请求都会建立一个新的连接。。这就是HTTP协议的工作原理
编辑:
如果您需要跟踪访客,您可以使用cookie或更好的会话。这些信息将随每个请求一起发送给您,当您没有找到任何附件时,您就知道这是一个“新连接”
为此,您可以使用每次对HTTP堆栈(服务器)的请求建立新连接。。这就是HTTP协议的工作原理
编辑:
如果您需要跟踪访客,您可以使用cookie或更好的会话。这些信息将随每个请求一起发送给您,当您没有找到任何附件时,您就知道这是一个“新连接”
您可以将其用于此目的我不认为这在express
中公开,这是一件好事,因为您最不想处理的事情是处理HTTP 1.1 keep alive自己
我会将用户代理
记录在一次发生的请求上,可能是用户身份验证请求或类似的请求
编辑:要展开第二部分,标准身份验证流之一可以如下所示:
用户发布凭据
服务器返回令牌
用户使用令牌访问API
因此,您可以在用户获得令牌时记录用户代理
,并在每个其他请求中记录令牌。通过这种方式,您可以轻松地在初始身份验证请求中搜索日志文件以查找用户代理。此令牌可以是会话ID,使用类似于包的包,也可以是更健壮的身份验证令牌
用户通过身份验证后,您还可以将该用户代理
值存储在会话对象服务器端,并添加中间件,在每个请求的跟踪
日志中记录会话。通过这种方式,您可以在每个请求上启用会话日志记录,并在需要时查看那里的用户代理。我不认为这在express
中公开,这是一件好事,因为您最不想处理的事情是处理HTTP 1.1 keep alive自己
我会将用户代理
记录在一次发生的请求上,可能是用户身份验证请求或类似的请求
编辑:要展开第二部分,标准身份验证流之一可以如下所示:
用户发布凭据
服务器返回令牌
用户使用令牌访问API
因此,您可以在用户获得令牌时记录用户代理
,并在每个其他请求中记录令牌。通过这种方式,您可以轻松地在初始身份验证请求中搜索日志文件以查找用户代理。此令牌可以是会话ID,使用类似于包的包,也可以是更健壮的身份验证令牌
用户通过身份验证后,您还可以将该用户代理
值存储在会话对象服务器端,并添加中间件,在每个请求的跟踪
日志中记录会话。通过这种方式,您可以在每个请求上启用会话日志记录,并在需要时查看用户代理。我认为,连接有一些有趣的地方:“保持活动状态”
mdn声明这是非标准的。。。坦率地说,我确实认为会话更适合您的情况,并得到所有现代浏览器的支持。我相信,“连接”有一些有趣的地方:“保持活力”
mdn声明这是非标准的。。。坦率地说,我确实认为会话更适合你的情况,并且得到所有现代浏览器的支持。谢谢你的回答。请澄清第二部分,我没明白。哦,我明白了。你说的是一个“有点特殊”的用户请求,这种请求在设计时只发生一次,对吗?是的!我对描述做了一些扩展。谢谢你的回答。请澄清第二部分,我没明白。哦,我明白了。你说的是一个“有点特殊”的用户请求,这种请求在设计时只发生一次,对吗?是的!我对描述做了一些扩展。