我应该多长时间创建数据库字段以保存useragent字符串?

时间:2016-09-18 05:27:24

标签: mysql user-agent

我正在自定义登录系统,并且出于安全原因要求记录所有身份验证请求。

我打算做的一件事是记录传入的用户代理字符串,并在请求时将它们翻译成Request from: (Chrome/Windows)Request from: (Firefox/Mac)

等显示

我的varchar字段在MySQL中的长度是多少?

我是否需要整个useragent字符串以准确确定客户端未来的浏览器/操作系统信息?或者是否有一些使用者的规范允许我从中提取子字符串并丢弃剩余的"无用的信息"。

1 个答案:

答案 0 :(得分:1)

简短回答:即使它是任意大的,一些用户代理仍会仍然被切断。

更长的答案:除非你打算在User-Agent上放一个索引(我不明白为什么你只是为了记录/显示目的),没有理由使用VarChar而不是Text字段足够长了。

或者,您可以找到一个用户代理解析库,它将字符串转换为更有用的内容,例如“Chrome / Windows”或“Safari / iPhone”,在这种情况下,您可以合理地使用较短的VarChar值。

用户代理字符串绝对没有规范。它们完全是任意的,尽管很多都遵循一些您不能总是为所有用户代理假设的一般模式。

总之,您的3个选项是:

  • 让图书馆有意义地解析它们
  • 选择任意varchar长度并接受一些将被切断的
  • 使用文字字段