操作系統(tǒng)/User-Agent

最后更新于:2022-10-17 18:11:55

一、操作系統(tǒng)/User-Agent(用戶代理) 

用戶代理是一種瀏覽器的原生短字符串。通過讀取用戶代理字符串,網(wǎng)站可以識(shí)別您的瀏覽器及操作系統(tǒng)的版本。

下面是一個(gè)用戶代理值的示例

Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.2785.8Safari/537.36

在這個(gè)例子中,網(wǎng)站將推測(cè)用戶使用的是Windows 8.1和Chrome 62?!癗T 6.3”是Windows發(fā)行的不同版本。您可以在Wikipedia article維基百科中查看其他已發(fā)行的版本。

創(chuàng)建瀏覽器配置文件時(shí),遵循您在概覽頁面的關(guān)于操作系統(tǒng)過濾器的選擇,用戶代理值從拉力貓指紋瀏覽器的指紋數(shù)據(jù)庫被獲取。您可以在導(dǎo)航欄頁面查看瀏覽器配置文件的用戶代理值。

如果您決定在拉力貓指紋瀏覽器中手動(dòng)設(shè)置用戶代理值,請(qǐng)確該值與平臺(tái)值(Platform)保持一致。用戶代理值和平臺(tái)存在差異將是很嚴(yán)重的錯(cuò)誤。

sec-ch-ua

user-agent自定義參數(shù),chrome 后面可能會(huì)淘汰user-agent,

用的是header中:sec-ch-ua開頭的參數(shù)。一般用戶只要選擇默認(rèn)的[自動(dòng)模式]即可


二、Platform(平臺(tái)) 

平臺(tái)的屬性是一個(gè)Navigator的對(duì)象參數(shù),可以用于指明瀏覽器的編譯平臺(tái)。

新建瀏覽器文件時(shí),平臺(tái)值和用戶代理同時(shí)被獲取。兩個(gè)值都會(huì)受到概覽頁面的操作系統(tǒng)過濾器的影響。您也可以在導(dǎo)航欄(Navigator)頁面手動(dòng)設(shè)置這個(gè)值。

桌面瀏覽器可用的平臺(tái)值:

Linux i686

Linux armv7l

MacIntel

Win64

Win32 (注意:模擬windows操作系統(tǒng)時(shí), Platform(平臺(tái)) 的值都是win32)

移動(dòng)瀏覽器可用的平臺(tái)值:

iPhone

iPod

iPad

Android

您可以從Stackoverflow article上獲取可用Navigator.Platform值的完整列表。


三、高手 User-Agent 配置不得不熟悉

1、首先,我們來了解一下什么是 User-Agent。

User-Agent會(huì)告訴網(wǎng)站服務(wù)器,訪問者是通過什么工具來請(qǐng)求的,里面包含了瀏覽器和系統(tǒng)相關(guān)版本信息。

我們每次http請(qǐng)求頭部都會(huì)帶有 User-Agent 字段(如下圖):

2、User-Agent字段解釋

我用的Chrome瀏覽器,查看User-Agent的結(jié)果:Markup

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

User-Agent通常格式:Markup

Mozilla/5.0 (平臺(tái)) 引擎版本 瀏覽器版本號(hào)

第一部分:Mozilla/5.0

由于歷史上的瀏覽器大戰(zhàn),當(dāng)時(shí)想獲得圖文并茂的網(wǎng)頁,就必須宣稱自己是 Mozilla 瀏覽器。此事導(dǎo)致如今User-Agent里通常都帶有Mozilla字樣,出于對(duì)歷史的尊重,大家都會(huì)默認(rèn)填寫該部分。

第二部分:平臺(tái)這部分可由多個(gè)字符串組成,用英文半角分號(hào)分開

Windows NT 10.0是指我使用的操作系統(tǒng)的版本,比如我使用的win10對(duì)應(yīng)的就是Windows NT 10.0,如果我使用win7對(duì)應(yīng)的就是Windows NT 6.1。
Win64; x64是指我的操作系統(tǒng)是64位的

Windows系統(tǒng)下:

Windows NT 5.0 // 如 Windows 2000 
Windows NT 5.1 // 如 Windows XP
Windows NT 6.0 // 如 Windows Vista 
Windows NT 6.1 // 如 Windows 7
Windows NT 6.2 // 如 Windows 8
Windows NT 6.3 // 如 Windows 8.1
Windows NT 10.0 // 如 Windows 10
Win64; x64 // Win64 on x64
WOW64 // Win32 on x64

Linux系統(tǒng)下:

X11; Linux i686; // Linux 桌面,i686 版本
X11; Linux x86_64; // Linux 桌面,x86_64 版本
X11; Linux i686 on x86_64 // Linux 桌面,運(yùn)行在 x86_64 的 i686 版本

macOS系統(tǒng)下:

Macintosh; Intel Mac OS X 10_9_0 // Intel x86 或者 x86_64
Macintosh; PPC Mac OS X 10_9_0 // PowerPC
Macintosh; Intel Mac OS X 10.12; // 不用下劃線,用點(diǎn)

第三部分:引擎版本

AppleWebKit/537.36 (KHTML, like Gecko)…Safari/537.36,歷史上,蘋果依靠了WebKit內(nèi)核開發(fā)出Safari瀏覽器,WebKit包含了WebCore引擎,而WebCore又從KHTML衍生而來。由于歷史原因,KHTML引擎需要聲明自己是“類似Gecko”的,因此引擎部分這么寫。再后來,Google開發(fā)Chrome也是用了WebKit內(nèi)核,于是也跟著這么寫。借用Littern的一句話:“Chrome 希望能得到為Safari編寫的網(wǎng)頁,于是決定裝成Safari,Safari使用了WebKit渲染引擎,而WebKit呢又偽裝自己是KHTML,KHTML呢又是偽裝成Gecko的。同時(shí)所有的瀏覽器又都宣稱自己是Mozilla?!?。不過,后來Chrome 28某個(gè)版本改用了blink內(nèi)核,但還是保留了這些字符串。而且,最近的幾十個(gè)版本中,這部分已經(jīng)固定,沒再變過。

第四部分:瀏覽器版本

本人用的是Chrome瀏覽器,其中75.0 是大版本,3371是持續(xù)增大的一個(gè)數(shù)字,而100則是修補(bǔ)漏洞的小版本。

關(guān)于 User-Agent 的總結(jié):當(dāng)我們?cè)O(shè)置了User-Agent字段,那么就要理解這個(gè)字段里的所有信息的含義,知道我們?cè)O(shè)置的是什么,告訴網(wǎng)站服務(wù)器我們用的是什么瀏覽器,是什么操作系統(tǒng),以及其它一些信息。我們其它的配置最好不要和 User-Agent 里的意思相違背。