存储用户代理的重点是什么?

时间:2015-04-15 08:04:21

标签: database browser user-agent

到目前为止,在记录userlogins时,我总是将完整的用户代理存储到已经解析过的信息(如浏览器,版本,操作系统等)。用户代理通常只是表中的TEXT字段。

在实施另一个类似的事情时,我问自己:甚至做到了这一点的意义何在?显然,用户代理在任何情况下都可以轻松操作,并且唯一相关的信息(浏览器,版本和操作系统)已经分别进行了解析和存储。

在存储它时是否有一些实际的好处,除了回溯可能被伪造的数据?用户代理还包含哪些其他相关信息来证明用于存储它的(多年,相当大)数据量?

当然,我意识到用户代理不仅仅包含浏览器规范 - 但是你真的必须回去分析用户代理本身多少次?

只是为了澄清:在解析"相关"之后,我正在讨论存储原始用户代理字符串的原因。信息(浏览器,操作系统等) - 在此之后用户代理有什么意义?

1 个答案:

答案 0 :(得分:3)

用户代理字符串包含有关环境的信息,包括操作系统和浏览器。这是我经常检查的东西。存储它有两个主要原因。

  • 如果您正在跟踪错误报告或错误,请执行此操作 信息对于确定什么是有用的甚至是必不可少的 错误 - 想象试图找到仅在IE8上发生的错误 没有用户代理!此信息还可以帮助您确定错误修复的优先级。在修复7%存在的问题之前,您需要修复93%环境中存在的问题。

  • 其次,它为您的用户个人资料提供了非常有用的统计信息。您可能只想支持超过一定百分比用户群的环境。例如,如果您正在设计软件的新版本,并且在检查用户代理日志时,您发现没有人使用IE,您可能无需为IE进行优化或设计。

您似乎担心用户代理字符串可能是伪造的。虽然这是可能的,除非有某些特定原因,有人可能会在您的应用程序中执行此操作,但担心它似乎相当偏执。但是,你要记住哪些信息可以假冒。

更新:我明白你的观点,事实上在我最近实现的日志记录中,由于数据开销,我删除了解析后的字符串。存储原始字符串和解析后的字符串几乎没有意义。这样做的唯一真正原因是使查询日志稍微容易一点,这对我来说不是一个好的理由。我个人存储整个原始的useragent,这意味着没有数据丢失,未来的浏览器/用户字符串/格式的未来证明,并消除了解析时出错的可能性。

来自Wikipedia

  

因此,大多数Web浏览器使用User-Agent值,如下所示:   Mozilla / [版本]([系统和浏览器信息])[平台]   ([平台详情])[扩展名]

如果您已经存储了所需的所有字段,那么请务必丢弃其余字段。要记录的数据量,保存日志的时间以及保留日志的形式是一个相当私人的事情,在某些方面会有所不同,从公司到公司,从项目到项目。