某日,我在流量统计系统的“浏览器分析”页面中发现一条奇怪的记录“Version 10”。这是什么浏览器?版本号达到两位数的浏览器也只有 Opera 了,所以最大“嫌疑”应该是 Opera 10。之前我明明看到过“Opera 10”的记录啊,怎么现在显示为“Version 10”了?原来 Opera 10 的用户代理字符串有变化。
Opera 10 用户代理字符串的变迁
在 2008 年底发布的 Alpha 版中,Opera 10 的用户代理信息中规中矩:
Opera/10.00 (Macintosh; Intel Mac OS X; U; en) Presto/2.2.0
但是在后续发布的 Beta 测试版(以及即将发布的正式版)中,Opera 10 将使用类似下面这种有点奇怪的用户代理信息:
Opera/9.80 (Macintosh; Intel Mac OS X; U; en) Presto/2.2.15 Version/10.00
大跌眼镜是吧?华丽丽的 10.0 变成了 9.8?!
为何要做如此奇怪的修改
Opera 的工程师在测试中发现,Opera 10 Alpha 在很多老网站上的运作很不正常。原来,有很多网站使用了“浏览器嗅探”技术,也就是说网站会针对不同的浏览器提供不同的内容或功能。然而不幸的是,这些网站无法识别两位数的浏览器版本号,于是 Opera 就成了首当其冲的受害者——它们把 Opera 10.0 误认为是 Opera 1.0,并因此向 Opera 10 提供不完整的功能,甚至有些网站干脆拒绝 Opera 10 的访问。
这当然是 Opera 不愿意看到的。于是,Opera 的工程师们决定,将用户代理信息中的版本号定格在 9.8,并另外启用 Version 字段来标识真正的版本号。当然他们也考虑过选用 9.99 这个最接近 10 的可用作版本号的数字,不过出于预留空间的考虑,最终还是决定采用 9.8 作为象征性的版本号——它正好介于(Opera 9 的最后一个版本号)9.6 与 10 之间。
发现这个问题后,我也迅速调整了流量统计系统,实现了对 Opera 10 的准确判断。和我一样热衷于流量分析的朋友也赶快跟进吧!
网友评论