Apr 092011
 

对于浏览器,都有一串用于识别浏览器的字串,这个就是User Agent。它还能提供用户OS版本、CPU类型等信息。例如我正在使用的Opera 11.01,它的User Agent是Opera/9.80 (Windows NT 6.1; U; en-GB) Presto/2.7.62 Version/11.01。

一般而言,User Agent的格式为:

Mozilla/[版本] ([系统及浏览器信息]) [平台] ([平台详情]) [其它信息]

或者

浏览器名称/[版本] ([系统及浏览器信息]) [平台] ([平台详情]) [其它信息]

本来第二个才是正确的格式,最开始的时候就是这样的。但由于后来IE为了与Netscape竞争,而当时很多网页都是祇为Netscape提供服务,IE唯有将自己伪装成Netscape。Mozilla是Netscape的内部开发代号,于是它的User Agent前边以Mozilla开头,后边跟着版本号。就像这样:

Mozilla/4.79 (Win98; I)

而IE为了伪装并标明自己的身份,它的User Agent是这样:

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

即使到了现在依然如此,并且还开了个坏头,现在几乎所有的浏览器都这样了:

Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16

Mozilla/5.0 (Windows NT 6.1; rv:2.0) Gecko/20100101 Firefox/4.0

Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27

但是,Opera除外!Opera依然继续使用正确的格式:

Opera/9.80 (Windows NT 6.1; U; en-GB) Presto/2.7.62 Version/11.01

真是难得。不过,以前Opera的User Agent及版本号不是这样的格式,而是:

Opera/8.01 (Windows NT 5.1; U; en)

Opera/9.63 (Windows NT 6.0; U; en) Presto/2.1.1

但从Opera 10.00开始就发生改变,原本Opera是想使用Opera/10.00这样的,但测试的时候发现很多网页显示不正常,原因是无法识别出数字10,祇能认出Opera/1,结果就出了问题。最后Opera不得不折衷改成:

Opera/9.80 (Windows NT 6.0; U; en) Presto/2.2.15 Version/10.00

即将真正的版本号放在后边,一直延续至今。虽然如此,Opera仍然值得称赞,因为它并未胡乱伪装自己。现在除了Opera和Firefox,其它的浏览器都在扰乱User Agent的格式,

另外,如果使用的是64-bit OS,在User Agent里面也会表明出来,比如64-bit Windows 7使用的32-bit IE8:

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0)

如果用64-bit IE8就会这样:

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64; x64; Trident/4.0)

  4 Responses to “Opera值得称赞的User Agent”

  1. 又学到一个专业的知识!

  2. 原来如此,我还想说为什么chrome会用Mozilla开头……
    是因为这种不成文的恶习导致的啊……

  3. 全部都有 Mozilla 字头是因为这是标准

    userAgent = appCodeName/appVersion number (Platform; Security; OS-or-CPU;
    Localization; rv: revision-version-number) product/productSub
    Application-Name Application-Name-version

    所有Gecko浏览器都是一样,包括Firefox,Chrome,Safari 等等。

  4. Hi there to every one, it's truly a good for me to pay a visit this web page, it consists of precious Information.

Sorry, the comment form is closed at this time.