Internet explorer HTTP\u USER\u AGENT和navigator.userAgent不一样,知道吗?

Internet explorer HTTP\u USER\u AGENT和navigator.userAgent不一样,知道吗?,internet-explorer,user-agent,Internet Explorer,User Agent,我在客户端使用Javascript,获取navigator.userAgent,返回: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; HPNTDF; .NET4.0C; .NET4.0E) Mozilla/5.0 (

我在客户端使用Javascript,获取
navigator.userAgent
,返回:

Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; HPNTDF; .NET4.0C; .NET4.0E)
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
使用C#
请求。ServerVariables[“HTTP\u USER\u AGENT”]
,返回:

Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; HPNTDF; .NET4.0C; .NET4.0E)
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
如你所见,它是IE:(

我总是这样,还是只有我? 如何获得相同的值


PS,我甚至在本地IIS中也尝试过,同样的结果

Internet Explorer nine和更高版本中的用户代理字符串在HTTP请求中发送的版本和通过
navigator.userAgent
获得的版本之间几乎总是不同的。这是因为字符串中有所谓的功能标记这里解释的是:

从msdn文档中:

早期版本的Internet Explorer包含在HTTP协商过程中使用用户代理字符串的平台前和平台后密钥部分定义的功能令牌。随着时间的推移,这会导致过长的用户代理字符串,进而导致某些web服务器出现问题。当用户代理字符串超过256个字符。从Internet Explorer 9开始,HTTP协商期间,用户代理字符串不再包含功能令牌。功能令牌包含在导航器对象的userAgent属性返回的值中。应相应修改依赖早期行为的应用程序


您必须决定要在应用程序中使用哪一个。没有办法“同步”它们。通过Javascript获得的一个应该包含更多信息…

您对此有答案吗?没有。只是不同,也就是说,不知道为什么,在重新加载(不是第一次命中)时会发生很多情况。