我正在自定义登录系统,并且出于安全原因,要求登录所有身份验证请求。
我计划要做的一件事是记录传入的用户代理字符串,并在需要时将其转换为诸如Request from: (Chrome/Windows)或的显示。Request from: (Firefox/Mac)
MySQL中的varchar字段应为多长?
我是否需要整个useragent字符串来将来准确确定客户端的浏览器/操作系统信息?或者是否有一些针对用户代理的规范,该规范允许我从中仅提取一个子字符串,并丢弃其余的“无用信息”。
简短的回答:即使它是任意大的,一些用户代理仍然会被切断。
更长的答案:除非您计划在 User-Agent 上放置索引(如果仅用于记录/显示目的,我不明白您为什么要这样做),否则没有理由使用 VarChar 而不是足够长的 Text 字段.
或者,您可以寻找一个 User-Agent 解析库,它将字符串转换为更有用的内容,例如“Chrome/Windows”或“Safari/iPhone”,在这种情况下,您可以合理地使用较短的 VarChar 值。
User-Agent 字符串绝对没有规范。它们是完全任意的,尽管许多都遵循一些您不能总是为所有用户代理假设的通用模式。
总之,您的 3 个选项是: