用户代理字符串可以有多大?

如果你打算将一个用户代理存储在数据库中,你会得到多大的服务?

我发现这篇Technet文章建议将UA保持在200以下。它看起来不像HTTP规范中定义的那样,至少不是我发现的。 我的UA已经有149个字符了,看起来.NET的每个版本都会添加到它。

我知道我可以解析这个字符串并将其分解,但我宁愿不要。


编辑
基于此博客IE9将更改为发送短UA字符串。 这是一个很好的改变。



HTTP规范根本不限制标头的长度。 然而,网络服务器确实限制了他们接受的头部大小,如果超过413 Entity Too Large

根据网络服务器及其设置,这些限制从4KB到64KB(所有标题的总数)不等。


我承担这一点:

  • 使用专用的表格仅存储UserAgent(标准化)
  • 在您的相关表中,存储外键值以指向UserAgent 自增主键字段
  • 将实际的UserAgent字符串存储在TEXT字段中 ,而不关心长度
  • 有另一个UNIQUE BINARY(32) (或64或128,取决于你的散列长度)并散列UserAgent
  • 一些UA字符串可能会变得非常漫长。 这应该可以避免你的后顾之忧。 还要在INSERTer中执行最大长度以保持UA字符串不超过4KB。 除非有人通过用户代理向你发送电子邮件,否则它不应该超过这个长度。


    由于它是为了数据库的目的,并没有实际的限制,我会去用UserAgentId作为Int和UserAgentString作为NVarChar(MAX)UserAgentId并在原始表上使用外键。

    链接地址: http://www.djcxy.com/p/71435.html

    上一篇: How big can a user agent string get?

    下一篇: Regarding Web Services, REST, and its types