首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >特快的‘`onconnect`’事件在哪里?

特快的‘`onconnect`’事件在哪里?
EN

Stack Overflow用户
提问于 2017-01-16 00:10:33
回答 2查看 244关注 0票数 0

使用"express“,我设置了这个中间件:

代码语言:javascript
复制
app.use(function(request, response, next) {
    console.log(request.headers["user-agent"]);
    // etc.
});

因此,在每次请求时,控制台中都会显示它的user-agent头。

但是现在你知道user-agent会是多么的混乱:

Mozilla/5.0 (Linux;Android7.1.1;Nexus5XBuild/NMF26F) AppleWebKit/537.36 (KHTML,类似壁虎) Chrome/56.0.2924.59 Mobile /537.36

我真的想在每个连接上输出一次头,而不是每个请求。

我该怎么做?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-16 00:14:12

每次对HTTP堆栈(服务器)的请求都建立一个新的连接。HTTP协议就是这样工作的

编辑:

如果您需要跟踪访问者,您可以使用cookie或更好的会话。每个请求都会发送给你,当你找不到附件时,你就知道这是一个“新连接”。

为此,可以使用特快会议

票数 1
EN

Stack Overflow用户

发布于 2017-01-16 00:17:31

我不认为这是在express中暴露出来的,这是一件好事,因为您最不想处理的就是自己处理HTTP1.1。

我会将user-agent记录在一次发生的请求上,可能是在用户身份验证请求或类似的请求上。

编辑:要对第二部分进行扩展,标准流程之一可以如下所示:

  1. 用户发布凭据
  2. 服务器返回一个令牌
  3. 用户使用令牌访问API

因此,您可以在用户获得令牌时记录user-agent,并在每个其他请求中记录该令牌。通过这种方式,您可以轻松地在初始身份验证请求中搜索日志文件中的用户代理。这个令牌可以是会话ID,可以使用像特快会议这样的包,也可以是更健壮的身份验证令牌。

用户身份验证后,您还可以将该user-agent值存储在会话对象服务器端,并在每个请求上添加将会话记录在trace日志中的中间件。通过这种方式,您可以在每个请求上启用会话日志记录,并在需要时在那里查看user-agent

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41667783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档