瀏覽器的userAgent-從chrome的userAgent引發的問題

來源:互聯網
上載者:User

工作中遇到在iphone|ipad|ipod這些行動裝置上對某些連結要特殊處理,理所當然地想到用userAgent判斷,如果不深究,也就是取出來ua然後判斷一下這些行動裝置的關鍵這是否在其中出現就可以了。於是先開啟ff和chrome看了一下ua,特別是看了一下chrome的ua,我淩亂了!

有Mazilla,有AppleWebKit,還有chrome和safari

google這是幹神馬呢?

於是互連網上找了一些關於ua的解釋(來自:http://c.sharp.blog.163.com/blog/static/16388543201221593542684/):

最早的時候有一個瀏覽器叫NCSA Mosaic,把自己標稱為NCSA_Mosaic/2.0 (Windows 3.1),它支援文字顯示的同時還支援圖片,於是Web開始好玩起來。


  然後出現了一個新的網頁瀏覽器,“Mozilla”,其實就是“Mosaic終結者”的意思,這搞的Mosaic很不爽,(畢竟Mosaic出道早,江湖老),新瀏覽器最後正式公布的名稱是Netscape,它把自己標稱為Mozilla/1.0 (Win3.1),更好玩了。Netscape支援架構顯示,後來架構在大家中間流行起來了,但Mosaic不支援架構啊,於是偉大的“使用者代-理人探測”技術出現了,如果是“Mozilla”,那就發給支援架構的頁面,至於其他的瀏覽器,則發給不含架構的頁面。


  Netscape想逗Microsoft玩兒,把Windows叫做“幾乎不曾做過調試的裝置磁碟機”,後者很惱火。Microsoft於是推出了自己的 網頁瀏覽器,叫做Internet Explorer,希望它能成為“Netscape終結者”。Internet Explorer也支援架構,但它不是Mozilla啊,所以沒人給它發送帶有架構的頁面。Microsoft慢慢煩躁起來,不再寄希望於網站管理員逐漸 認識IE並給它發架構,而是宣稱自己是“相容Mozilla”的,開始模仿Netscape,把自己標稱為Mozilla/1.22 (compatible; MSIE 2.0; Windows 95),這樣Internet Explorer也能收到架構了,整個Microsoft狂喜,但網站管理員開始有點被搞糊塗了。

  Microsoft把IE和Windows一起賣,並且把產品也弄得比Netscape更好了,拉開了第一場瀏覽器之戰。結果和大家知道的一樣,Netscape被幹掉了,Microsoft大勝、大喜。但是後來Netscape以Mozilla的新名稱重生了,構造了Gecko,標稱其為Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.1) Gecko/20020826,Gecko屬於渲染引擎,表現優異。Mozilla開發了Firefox,標稱為Mozilla/5.0 (Windows; U; Windows NT 5.1; sv-SE; rv:1.7.5) Gecko/20041108 Firefox/1.0,並且Firefox表現也非常優秀。Gecko擴張迅速,一些瀏覽器使用了它的代碼並標稱為Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7.2) Gecko/20040825 Camino/0.8.1 ,這是一個,還有Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.8) Gecko/20071008 SeaMonkey/1.0,另一個,它們都偽裝成Mozilla,同時也都是基於Gecko支援的。


  Gecko表現優秀,IE則很差勁,於是身份甄別再次發生,輸送給Gecko的是設計良好的網頁代碼,其他瀏覽器就沒有這個待遇了。Linux的跟隨者很傷心,因為他們建立了基於KHTML引擎支援的Konqueror,但卻不會被輸送好代碼,雖然他們自己認為KHTML和Gecko一樣優秀,於是Konquerer開始偽裝自己“像Gecko”那樣以得到好的網頁,並標稱自己為Mozilla/5.0 (compatible; Konqueror/3.2; FreeBSD) (KHTML, like Gecko),這個世界更讓人困惑了。


  後來出現了Opera這樣的主兒,宣稱“允許使用者自己決定讓瀏覽器裝成誰”,它的菜單中提供了Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.51, Mozilla/5.0 (Windows NT 6.0; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.51,Opera/9.51 (Windows NT 5.1; U; en) 供大家來選擇,選誰是誰。

  

  Apple開發了Safari,使用了KHTML,同時也增加了很多新特性,後來乾脆一鍋煮,另起爐灶叫了WebKit,但是它有希望能夠得到那些為KHTML編寫的網頁,於是Safari標稱自己為Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5,這個世界更混亂了。

  

  Microsoft越來越擔心Firefox的發展,重新啟動了Internet Explorer的開發,標稱自己為Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0) ,可以很好的渲染代碼,但那要看網站管理員是否指示它這麼做。

  

  Google也開發了自己的瀏覽器Chrome, 使用了Webkit,有點像Safari,希望能得到為Safari編寫的網頁,於是決定裝成Safari。這樣啊,Chrome使用了WebKit渲染 引擎,想裝成Safari,而WebKit呢又偽裝自己是KHTML,KHTML呢又是偽裝成Gecko的,同時所有的瀏覽器又都宣稱自己是 Mozilla,於是,Chrome宣稱自己是Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13,,UserAgent字串徹底混亂了,也幾乎不再發揮任何作用,每個人都宣稱自己是別人,混亂充斥人間啊。


  有點調侃的味道,可以總結為一句話:Mozilla是Netscape的吉祥物,也是Netscape Navigator瀏覽器使用的內部開發代號。由於Netscape早期的影響力,直到今天,所有瀏覽器包括IE,向Web伺服器報告自己的瀏覽器標識的 時候,都以 “Mozilla”開頭,表明自己是Mozilla相容的。這,就是原因啦。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.