UserAgent(瀏覽器UA標識)是什麼

2020-07-16 10:04:48
UA 是“UserAgent”(使用者代理)的簡寫,一般用來區分不同的瀏覽器。UA 形如:Mozilla/3.0 (Win95; U)。

這是 Netscape (網景)瀏覽器的標識,Mozilla/3.0 表示 Netscape Navigator 3,Win95 表示宿主平台,U 為加密型別[U ( 128 位加密 )、I ( 40 位加密 )、N ( 沒加密 )]。

這是“血統最純正”的 UA。其他的瀏覽器(例如 IE、Safari. Chrome 等)都是以它為模板擴充套件出來的,比如下面這些 UA:
  • IE:Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko
  • Safari:Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/124 (KHTML, like Gecko) Safari/125.1
  • Chrome:Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.29 Safari/525.13

這些瀏覽器的標識中都有 Mozilla,可能大家會疑惑,這幾個瀏覽器名氣都比 Netscape 大,為什麼要這樣標記呢?因為那時 Netscape 已經發展了 18 年,而 IE 才發展了 1 年,當然要向 Netscape 看齊了。

Netscape 支援網頁框架,就給自己貼上 Mozilla 的標籤,表示自己有這個能力。於是伺服器給 Netscape 瀏覽器下髮帶框架的頁面,這些網頁在 Netscape 上表現得很好。

雖然 IE 也支援框架,可大家都不識別,伺服器給它下發的自然都是沒框架的頁面。於是 IE 搖身一變,也貼個 Mozilla 標籤,讓大家都給它發帶框架的頁面。

IE 就這樣逐漸占領了 Netscape 的市場。Safari、Chrome 也緊隨其後,貼上了 Mozilla 的標籤,於是 Mozilla 成了瀏覽器界的 UA 的標配。

那麼“KHTML,like Gecko” 又是什麼呢?

Gecko 屬於渲染引擎,用於對網頁資訊進行排版顯示。因為 Netscape 不滿自己的市場被擠佔,讓 Firefox 搭載了 Gecko,使其擁有更強的能力,網頁開發者又開始追捧GeckO。

其他瀏覽器為了能享受相同的待遇,紛紛聲稱自己“like Gecko”,這裡的 like 是“像”的意思,不是“喜歡”的意思。

KHTML 是 Linux 上的渲染引擎。Gecko 大火,KHTML 只有迎合大趨勢才不至於被冷落,但自己本來的標識不能丟,所以表明身份是 KHTML,只是帶上了 like Gecko 的標識。

看了上面的故事,再來看看快被大家忘掉的 Opera。它本是一個堅持自己立場的瀏覽器,可它的 UA 還是從 Opera/8.0 (Windows NT 5.1; U; en) 變成了 Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.50,它的 UA 在訴說怎樣的故事,大家可以自行推理。

最後,微軟的 Edge 瀏覽器的 UA 拷貝如下:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586

至此,UA 不再是冰冷的標識,而是一個個鮮活的故事。