瀏覽器的“套娃行為”有多兇殘?
來源:本站原創(chuàng) 瀏覽:892次 時間:2021-06-25
幾乎所有的中國網(wǎng)民都不會忘記 2010 年的“3Q大戰(zhàn)”。
在騰訊做出那個“非常艱難的決定”之后,360 不但不能與 QQ 同時安裝了,使用 360 瀏覽器的用戶也不再能訪問 QQ 空間。
QQ 空間作為當時最受歡迎的社交網(wǎng)站,騰訊的這一操作就等同于宣判了 360 瀏覽器的死刑。
在此次大戰(zhàn)中,發(fā)揮著關(guān)鍵性作用的是「瀏覽器 UA」,我們今天就來好好討論一下這個話題。
一、瀏覽器 UA 的誕生
要講清楚這個話題,我們要從 1990 年說起。
1990 年,英國計算機科學家蒂姆·伯納斯·李巧妙地提出了 HTTP 協(xié)議,然后又編寫了世界上第一個瀏覽器 World Wide Web,萬維網(wǎng)就此誕生。
1993 年,美國國家超級電腦應(yīng)用中心(NCSA)推出了一款叫做 Mosaic(馬賽克) 的瀏覽器,它第一次將圖片與文字同時在一起展示。
從此,瀏覽器就變得有趣且流行起來。
瀏覽器的“套娃行為”有多兇殘?
為了發(fā)揮 Mosaic 瀏覽器的優(yōu)勢,Mosaic 瀏覽器在訪問網(wǎng)頁時,會事先向網(wǎng)頁服務(wù)器發(fā)送一段特定的字符串來標記自己,這樣使用 Mosaic 的用戶能收到有圖片的內(nèi)容了。
這個字符串 Mosaic/2.0(Windows 3.1) 就是 UserAgent,簡稱 UA,中文叫作“用戶代理”。
瀏覽器的“套娃行為”有多兇殘?
從此,瀏覽器 UA 作為一種“根據(jù)用戶軟硬件環(huán)境,進而采用不同內(nèi)容策略”的技術(shù)誕生了。
二、瀏覽器 UA 的偽裝
1994 年,Mosaic 項目的核心成員馬克·安德森離職,然后發(fā)布了一款全新的瀏覽器 Mozilla。
Mozilla 除了是 Godzilla 的諧音外,它還是 Mosaic Killa 的縮寫,意思是要做 Mosaic 的終結(jié)者。
然而在 Mosaic 的壓力之下, Mozilla 還是改名為了 Netscape(網(wǎng)景)瀏覽器。
不過在設(shè)置瀏覽器 UA 時,Netscape 仍然使用了 Mozilla 的名字,也就是 Mozilla/1.0 (Win3.1)。
瀏覽器的“套娃行為”有多兇殘?
接著,Netscape 瀏覽器率先支持了網(wǎng)頁框架技術(shù),而其他瀏覽器要么不支持,要么支持得不夠好,Netscape 很快成為當時最流行的瀏覽器。
1995 年,微軟宣布進軍互聯(lián)網(wǎng),然后發(fā)布了 IE 瀏覽器。
盡管 IE 瀏覽器同樣也支持框架技術(shù),但總是收不到有框架的頁面,原因是網(wǎng)頁服務(wù)器會先檢測瀏覽器 UA 中是否包含有 Mozilla。
如果有,那就發(fā)送有框架的頁面,如果沒有,那就發(fā)送不含框架的頁面。
微軟等不及市場的反應(yīng),于是在 IE 瀏覽器的 UA 中加入了 Mozilla 的字樣,也就是Mozilla/1.22 (compatible; MSIE 2.0; Windows 95)。
這樣 IE 瀏覽器就能正常接收到有框架的頁面了。
瀏覽器的“套娃行為”有多兇殘?
于是,瀏覽器 UA 也成為了解決瀏覽器兼容性的一個重要手段。
三、瀏覽器 UA 的演變
沒過多久,微軟采用了將 IE 與 Windows 捆綁銷售的策略,Netscape 瀏覽器被打敗退出歷史舞臺。
不甘失敗的 Netscape 團隊在 2004 年又推出了一款新的瀏覽器 Firefox。
Firefox 瀏覽器使用的 Gecko 引擎非常優(yōu)秀,為了告訴大家,我使用了這個引擎,于是就加入到了瀏覽器的 UA 里:
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041108 Firefox/1.0。
瀏覽器的“套娃行為”有多兇殘?
由于 Gecko 的出色和 IE 的止步不前,瀏覽器 UA 的探測規(guī)則發(fā)生了變化。
使用 Gecko 引擎的瀏覽器可以得到更好的網(wǎng)頁代碼,而其他的瀏覽器則沒有這種待遇。
Linux 的追隨者對此很難過,因為他們開發(fā)了基于 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,然后開發(fā)了 Safari 瀏覽器。
為了兼容性的考慮,于是蘋果將 KHTML 內(nèi)核 UA 中 的 Mozilla、KHTML、Gecko 統(tǒng)統(tǒng)繼承了下來,變成了:
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5。
瀏覽器的“套娃行為”有多兇殘?
2008 年,谷歌使用了蘋果的 Webkit 開發(fā)出了 Chrome 瀏覽器。
和 Safari 一樣,Chrome 瀏覽器也想兼容那些為 Safari 專門編寫的頁面,于是就繼承了 Safari 的 UA,然后再加入自己的 UA:
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。
瀏覽器的“套娃行為”有多兇殘?
如果要問誰是“偽裝之王”,那一定非 Edge 莫屬了。
2020 年,微軟轉(zhuǎn)用谷歌的 Chromium 內(nèi)核開發(fā) 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 的偽裝比作是“俄羅斯套娃”的話,我們會發(fā)現(xiàn):
Edge 偽裝成 Chrome,Chrome 偽裝成 Safari,Safari 偽裝成 KHTML,KHTML 偽裝成 Gecko,Gecko 和 IE 又偽裝成 Mozilla,最終,所有瀏覽器的 UA 都以 Mozilla 開頭。
盡管 Mozilla 作為一個瀏覽器而言,早已從市場上消失。
瀏覽器的“套娃行為”有多兇殘?
四、自定義瀏覽器 UA
瀏覽器 UA 的利用,通常與瀏覽器的功能性相關(guān),但也會有其他的因素。
比如當年的“3Q大戰(zhàn)”,QQ 空間利用 360 瀏覽器 UA 中含有的“360SE”字樣來屏蔽 360 瀏覽器,而 360 瀏覽器為了躲避封殺,則將“360SE”的字樣從瀏覽器 UA 中移除。
瀏覽器的“套娃行為”有多兇殘?
又比如一些視頻網(wǎng)站,針對桌面瀏覽器和安卓手機瀏覽器,會推送視頻貼片廣告,而對蘋果的 Safari 瀏覽器則不推送。
還有如百度網(wǎng)盤,用一般的瀏覽器下載會大幅限速,而用自家的“百度云管家”則會小幅限速。
對于這類區(qū)別對待,我們有必要奪回瀏覽器 UA 的控制權(quán)。
首先,我們檢查一下當前使用瀏覽器的 UA,方法在地址欄中輸入 :
Chrome:chrome://version
Edge:edge://version
Firefox:about:support
又或者打開下面三個網(wǎng)站來檢測:
https://www.whatsmyua.info
https://passer-by.com/browser
http://useragentstring.com
然后,我們可以使用拓展 User-Agent Switcher and Manager 來自定義瀏覽器 UA,拓展同時還支持“白名單模式”,可以對不同的網(wǎng)站使用不同的瀏覽器 UA。
瀏覽器的“套娃行為”有多兇殘?
又或者使用拓展 Header Editor 來修改瀏覽器 UA。
它的優(yōu)點在于多功能合一,可以省去安裝一個專門的瀏覽器 UA 拓展,支持 Chrome、Edge、Firefox 三款瀏覽器。
瀏覽器的“套娃行為”有多兇殘?
就是要注意,使用完后要切換回默認的 UA 哦。
結(jié)尾
說到底,瀏覽器 UA 其實是“瀏覽器大戰(zhàn)”的產(chǎn)物。
如果我們想要有一個更加暢通無阻的互聯(lián)網(wǎng),那么就很有必要去了解它。
而且,隨著 Python 和大數(shù)據(jù)的火熱,「爬蟲技術(shù)」和「反爬蟲技術(shù)」的入門也都離不開瀏覽器 UA。
看完這篇文章后,相信你已經(jīng)半只腳踏入這個領(lǐng)域了,至少在朋友面前裝個 B 已經(jīng)是沒問題了。
瀏覽器的“套娃行為”有多兇殘?
在騰訊做出那個“非常艱難的決定”之后,360 不但不能與 QQ 同時安裝了,使用 360 瀏覽器的用戶也不再能訪問 QQ 空間。
QQ 空間作為當時最受歡迎的社交網(wǎng)站,騰訊的這一操作就等同于宣判了 360 瀏覽器的死刑。
在此次大戰(zhàn)中,發(fā)揮著關(guān)鍵性作用的是「瀏覽器 UA」,我們今天就來好好討論一下這個話題。
一、瀏覽器 UA 的誕生
要講清楚這個話題,我們要從 1990 年說起。
1990 年,英國計算機科學家蒂姆·伯納斯·李巧妙地提出了 HTTP 協(xié)議,然后又編寫了世界上第一個瀏覽器 World Wide Web,萬維網(wǎng)就此誕生。
1993 年,美國國家超級電腦應(yīng)用中心(NCSA)推出了一款叫做 Mosaic(馬賽克) 的瀏覽器,它第一次將圖片與文字同時在一起展示。
從此,瀏覽器就變得有趣且流行起來。
瀏覽器的“套娃行為”有多兇殘?
為了發(fā)揮 Mosaic 瀏覽器的優(yōu)勢,Mosaic 瀏覽器在訪問網(wǎng)頁時,會事先向網(wǎng)頁服務(wù)器發(fā)送一段特定的字符串來標記自己,這樣使用 Mosaic 的用戶能收到有圖片的內(nèi)容了。
這個字符串 Mosaic/2.0(Windows 3.1) 就是 UserAgent,簡稱 UA,中文叫作“用戶代理”。
瀏覽器的“套娃行為”有多兇殘?
從此,瀏覽器 UA 作為一種“根據(jù)用戶軟硬件環(huán)境,進而采用不同內(nèi)容策略”的技術(shù)誕生了。
二、瀏覽器 UA 的偽裝
1994 年,Mosaic 項目的核心成員馬克·安德森離職,然后發(fā)布了一款全新的瀏覽器 Mozilla。
Mozilla 除了是 Godzilla 的諧音外,它還是 Mosaic Killa 的縮寫,意思是要做 Mosaic 的終結(jié)者。
然而在 Mosaic 的壓力之下, Mozilla 還是改名為了 Netscape(網(wǎng)景)瀏覽器。
不過在設(shè)置瀏覽器 UA 時,Netscape 仍然使用了 Mozilla 的名字,也就是 Mozilla/1.0 (Win3.1)。
瀏覽器的“套娃行為”有多兇殘?
接著,Netscape 瀏覽器率先支持了網(wǎng)頁框架技術(shù),而其他瀏覽器要么不支持,要么支持得不夠好,Netscape 很快成為當時最流行的瀏覽器。
1995 年,微軟宣布進軍互聯(lián)網(wǎng),然后發(fā)布了 IE 瀏覽器。
盡管 IE 瀏覽器同樣也支持框架技術(shù),但總是收不到有框架的頁面,原因是網(wǎng)頁服務(wù)器會先檢測瀏覽器 UA 中是否包含有 Mozilla。
如果有,那就發(fā)送有框架的頁面,如果沒有,那就發(fā)送不含框架的頁面。
微軟等不及市場的反應(yīng),于是在 IE 瀏覽器的 UA 中加入了 Mozilla 的字樣,也就是Mozilla/1.22 (compatible; MSIE 2.0; Windows 95)。
這樣 IE 瀏覽器就能正常接收到有框架的頁面了。
瀏覽器的“套娃行為”有多兇殘?
于是,瀏覽器 UA 也成為了解決瀏覽器兼容性的一個重要手段。
三、瀏覽器 UA 的演變
沒過多久,微軟采用了將 IE 與 Windows 捆綁銷售的策略,Netscape 瀏覽器被打敗退出歷史舞臺。
不甘失敗的 Netscape 團隊在 2004 年又推出了一款新的瀏覽器 Firefox。
Firefox 瀏覽器使用的 Gecko 引擎非常優(yōu)秀,為了告訴大家,我使用了這個引擎,于是就加入到了瀏覽器的 UA 里:
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041108 Firefox/1.0。
瀏覽器的“套娃行為”有多兇殘?
由于 Gecko 的出色和 IE 的止步不前,瀏覽器 UA 的探測規(guī)則發(fā)生了變化。
使用 Gecko 引擎的瀏覽器可以得到更好的網(wǎng)頁代碼,而其他的瀏覽器則沒有這種待遇。
Linux 的追隨者對此很難過,因為他們開發(fā)了基于 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,然后開發(fā)了 Safari 瀏覽器。
為了兼容性的考慮,于是蘋果將 KHTML 內(nèi)核 UA 中 的 Mozilla、KHTML、Gecko 統(tǒng)統(tǒng)繼承了下來,變成了:
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5。
瀏覽器的“套娃行為”有多兇殘?
2008 年,谷歌使用了蘋果的 Webkit 開發(fā)出了 Chrome 瀏覽器。
和 Safari 一樣,Chrome 瀏覽器也想兼容那些為 Safari 專門編寫的頁面,于是就繼承了 Safari 的 UA,然后再加入自己的 UA:
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。
瀏覽器的“套娃行為”有多兇殘?
如果要問誰是“偽裝之王”,那一定非 Edge 莫屬了。
2020 年,微軟轉(zhuǎn)用谷歌的 Chromium 內(nèi)核開發(fā) 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 的偽裝比作是“俄羅斯套娃”的話,我們會發(fā)現(xiàn):
Edge 偽裝成 Chrome,Chrome 偽裝成 Safari,Safari 偽裝成 KHTML,KHTML 偽裝成 Gecko,Gecko 和 IE 又偽裝成 Mozilla,最終,所有瀏覽器的 UA 都以 Mozilla 開頭。
盡管 Mozilla 作為一個瀏覽器而言,早已從市場上消失。
瀏覽器的“套娃行為”有多兇殘?
四、自定義瀏覽器 UA
瀏覽器 UA 的利用,通常與瀏覽器的功能性相關(guān),但也會有其他的因素。
比如當年的“3Q大戰(zhàn)”,QQ 空間利用 360 瀏覽器 UA 中含有的“360SE”字樣來屏蔽 360 瀏覽器,而 360 瀏覽器為了躲避封殺,則將“360SE”的字樣從瀏覽器 UA 中移除。
瀏覽器的“套娃行為”有多兇殘?
又比如一些視頻網(wǎng)站,針對桌面瀏覽器和安卓手機瀏覽器,會推送視頻貼片廣告,而對蘋果的 Safari 瀏覽器則不推送。
還有如百度網(wǎng)盤,用一般的瀏覽器下載會大幅限速,而用自家的“百度云管家”則會小幅限速。
對于這類區(qū)別對待,我們有必要奪回瀏覽器 UA 的控制權(quán)。
首先,我們檢查一下當前使用瀏覽器的 UA,方法在地址欄中輸入 :
Chrome:chrome://version
Edge:edge://version
Firefox:about:support
又或者打開下面三個網(wǎng)站來檢測:
https://www.whatsmyua.info
https://passer-by.com/browser
http://useragentstring.com
然后,我們可以使用拓展 User-Agent Switcher and Manager 來自定義瀏覽器 UA,拓展同時還支持“白名單模式”,可以對不同的網(wǎng)站使用不同的瀏覽器 UA。
瀏覽器的“套娃行為”有多兇殘?
又或者使用拓展 Header Editor 來修改瀏覽器 UA。
它的優(yōu)點在于多功能合一,可以省去安裝一個專門的瀏覽器 UA 拓展,支持 Chrome、Edge、Firefox 三款瀏覽器。
瀏覽器的“套娃行為”有多兇殘?
就是要注意,使用完后要切換回默認的 UA 哦。
結(jié)尾
說到底,瀏覽器 UA 其實是“瀏覽器大戰(zhàn)”的產(chǎn)物。
如果我們想要有一個更加暢通無阻的互聯(lián)網(wǎng),那么就很有必要去了解它。
而且,隨著 Python 和大數(shù)據(jù)的火熱,「爬蟲技術(shù)」和「反爬蟲技術(shù)」的入門也都離不開瀏覽器 UA。
看完這篇文章后,相信你已經(jīng)半只腳踏入這個領(lǐng)域了,至少在朋友面前裝個 B 已經(jīng)是沒問題了。
瀏覽器的“套娃行為”有多兇殘?