瀏覽器的“套娃行為”有多兇殘?

瀏覽器的“套娃行為”有多兇殘?

幾乎所有的中國網民都不會忘記 2010 年的“

3Q大戰

”。

在騰訊做出那個“

非常艱難的決定

”之後,360 不但不能與 QQ 同時安裝了,使用 360 瀏覽器的使用者也不再能訪問 QQ 空間。

QQ 空間作為當時最受歡迎的社交網站,

騰訊的這一操作就等同於宣判了 360 瀏覽器的死刑

在此次大戰中,發揮著關鍵性作用的是「

瀏覽器 UA

」,我們今天就來好好討論一下這個話題。

一、瀏覽器 UA 的誕生

要講清楚這個話題,我們要從 1990 年說起。

1990 年,英國計算機科學家

蒂姆·伯納斯·李

巧妙地提出了

HTTP 協議

,然後又編寫了世界上第一個瀏覽器

World Wide Web

,全球資訊網就此誕生。

1993 年,美國國家超級電腦應用中心(NCSA)推出了一款叫做

Mosaic(馬賽克)

的瀏覽器,它第一次將圖片與文字同時在一起展示。

從此,瀏覽器就變得有趣且流行起來。

瀏覽器的“套娃行為”有多兇殘?

為了發揮 Mosaic 瀏覽器的優勢,Mosaic 瀏覽器在訪問網頁時,會事先向網頁伺服器傳送一段

特定的字串

來標記自己,這樣使用 Mosaic 的使用者能收到有圖片的內容了。

這個字串

Mosaic/2.0(Windows 3.1)

就是

UserAgent

,簡稱

UA

,中文叫作“

使用者代理

”。

瀏覽器的“套娃行為”有多兇殘?

從此,瀏覽器 UA 作為一種“

根據使用者軟硬體環境,進而採用不同內容策略

”的技術誕生了。

二、瀏覽器 UA 的偽裝

1994 年,Mosaic 專案的核心成員

馬克·安德森

離職,然後釋出了一款全新的瀏覽器

Mozilla

Mozilla 除了是

Godzilla

的諧音外,它還是

Mosaic Killa

的縮寫,意思是要做

Mosaic 的終結者

然而在

Mosaic

的壓力之下,

Mozilla

還是改名為了

Netscape

(網景)瀏覽器。

不過在設定瀏覽器 UA 時,Netscape 仍然使用了 Mozilla 的名字,也就是

Mozilla/1.0 (Win3.1)

瀏覽器的“套娃行為”有多兇殘?

接著,Netscape 瀏覽器率先支援了網頁框架技術,而其他瀏覽器要麼不支援,要麼支援得不夠好,Netscape 很快成為當時最流行的瀏覽器。

1995 年,微軟宣佈進軍網際網路,然後釋出了 IE 瀏覽器。

儘管 IE 瀏覽器同樣也支援框架技術,但總是收不到有框架的頁面,原因是網頁伺服器會先檢測瀏覽器 UA 中是否包含有 Mozilla。

如果有,那就傳送有框架的頁面,如果沒有,那就傳送不含框架的頁面。

微軟等不及市場的反應,於是在 IE 瀏覽器的 UA 中加入了 Mozilla 的字樣,也就是

Mozilla/1.22 (compatible; MSIE 2.0; Windows 95)

這樣 IE 瀏覽器就能正常接收到有框架的頁面了。

瀏覽器的“套娃行為”有多兇殘?

於是,瀏覽器 UA 也成為了解決瀏覽器相容性的一個重要手段。

三、瀏覽器 UA 的演變

沒過多久,微軟採用了將 IE 與 Windows 捆綁銷售的策略,Netscape 瀏覽器被打敗退出歷史舞臺。

不甘失敗的 Netscape 團隊在 2004 年又推出了一款新的瀏覽器

Firefox

Firefox 瀏覽器使用的

Gecko

引擎非常優秀,為了告訴大家,我使用了這個引擎,於是就加入到了瀏覽器的 UA 裡:

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041108 Firefox/1.0

瀏覽器的“套娃行為”有多兇殘?

由於 Gecko 的出色和 IE 的止步不前,瀏覽器 UA 的探測規則發生了變化。

使用 Gecko 引擎的瀏覽器可以得到更好的網頁程式碼,而其他的瀏覽器則沒有這種待遇。

Linux 的追隨者對此很難過,因為他們開發了基於

KHTML

引擎的 Konqueror 瀏覽器,他們認為

KHTML

Gecko

一樣出色,但卻因為不是 Gecko 而得不到好的頁面。

於是他們宣佈 KHTML 相容 Gecko

(like Gecko)

,瀏覽器 UA 就變成了:

Mozilla/5.0 (compatible; Konqueror/3.2; FreeBSD) (KHTML, like Gecko)

瀏覽器的“套娃行為”有多兇殘?

一直使用自主 UA 的瀏覽器 Opera 也同樣有這樣的問題。

但 Opera 不是簡單地把自己也標記為 Gecko,而是主張讓使用者來決定變成什麼樣的瀏覽器。

於是 Opera 在選單裡增加了瀏覽器 UA 的選項,讓使用者來選擇是變成 IE 還是 Firefox,又或者是它自己本體。

瀏覽器的“套娃行為”有多兇殘?

2003 年,蘋果公司從 KHTML 引擎中分支出來了 Webkit,然後開發了 Safari 瀏覽器。

為了相容性的考慮,於是蘋果將 KHTML 核心 UA 中 的 Mozilla、KHTML、Gecko 統統繼承了下來,變成了:

Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5

瀏覽器的“套娃行為”有多兇殘?

2008 年,谷歌使用了蘋果的 Webkit 開發出了 Chrome 瀏覽器。

和 Safari 一樣,Chrome 瀏覽器也想相容那些為 Safari 專門編寫的頁面,於是就繼承了 Safari 的 UA,然後再加入自己的 UA:

M

ozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13

瀏覽器的“套娃行為”有多兇殘?

如果要問誰是“

偽裝之王

”,那一定非

Edge

莫屬了。

2020 年,微軟轉用谷歌的 Chromium 核心開發 Edge 瀏覽器,為了不再受相容性的困擾,Edge 瀏覽器幾乎將所瀏覽器的 UA 都加入了進來,於是就有了:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.70 Safari/537.36 Edg/90.0.818.38

瀏覽器的“套娃行為”有多兇殘?

如果把 UA 的偽裝比作是“

俄羅斯套娃

”的話,我們會發現:

Edge 偽裝成 Chrome,Chrome 偽裝成 Safari,Safari 偽裝成 KHTML,KHTML 偽裝成 Gecko,Gecko 和 IE 又偽裝成 Mozilla,

最終,所有瀏覽器的 UA 都以 Mozilla 開頭

儘管 Mozilla 作為一個瀏覽器而言,早已從市場上消失。

瀏覽器的“套娃行為”有多兇殘?

四、自定義瀏覽器 UA

瀏覽器 UA 的利用,通常與瀏覽器的功能性相關,但也會有其他的因素。

比如當年的“

3Q大戰

”,QQ 空間利用 360 瀏覽器 UA 中含有的“

360SE”

字樣來遮蔽 360 瀏覽器,而 360 瀏覽器為了躲避封殺,則將“

360SE

”的字樣從瀏覽器 UA 中移除。

瀏覽器的“套娃行為”有多兇殘?

又比如一些影片網站,針對

桌面瀏覽器和安卓手機瀏覽器

,會推送影片貼片廣告,而對蘋果的

Safari 瀏覽器

則不推送。

還有如百度網盤,用一般的瀏覽器下載會大幅限速,而用自家的“

百度雲管家

”則會小幅限速。

對於這類區別對待

們有必要奪回瀏覽器 UA 的控制權

首先,我們檢查一下當前使用瀏覽器的 UA,方法在位址列中輸入 :

Chrome:chrome://version

Edge:edge://version

Firefox:about:support

又或者開啟下面三個網站來檢測:

https://www。whatsmyua。info

https://passer-by。com/browser

http://useragentstring。com

然後,我們可以使用拓展

User-Agent Switcher and Manager

來自定義瀏覽器 UA,拓展同時還支援“

白名單模式

”,可以對不同的網站使用不同的瀏覽器 UA。

瀏覽器的“套娃行為”有多兇殘?

又或者使用拓展

Header Editor

來修改瀏覽器 UA。

它的優點在於

多功能合一

,可以省去安裝一個專門的瀏覽器 UA 拓展,支援 Chrome、Edge、Firefox 三款瀏覽器。

瀏覽器的“套娃行為”有多兇殘?

就是要注意,使用完後要切換回預設的 UA 哦。

結尾

說到底,瀏覽器 UA 其實是“

瀏覽器大戰”

的產物。

如果我們想要有一個更加暢通無阻的網際網路,那麼就很有必要去了解它。

而且,隨著 Python 和大資料的火熱,「

爬蟲技術

」和「

反爬蟲技術

」的入門也都離不開瀏覽器 UA。

看完這篇文章後,相信你已經半隻腳踏入這個領域了,至少在朋友面前裝個 B 已經是沒問題了。

瀏覽器的“套娃行為”有多兇殘?

瀏覽器的“套娃行為”有多兇殘?