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.