Chrome DevTools: 修改User-Agent,定制個(gè)性化UA
本文轉(zhuǎn)載自微信公眾號(hào)「天天Up」,作者TianTianUp。轉(zhuǎn)載本文請(qǐng)聯(lián)系天天Up公眾號(hào)。
你好,我是TianTianUp。
先拋出問題,本地開發(fā)時(shí),想要快速達(dá)到修改UA的時(shí)候,你一般是怎么做的?
這里的UA(User-Agent),指得是用戶代理,對(duì)于User-Agent的解釋,MDN給出的解釋如下:
User-Agent 首部包含了一個(gè)特征字符串,用來讓網(wǎng)絡(luò)協(xié)議的對(duì)端來識(shí)別發(fā)起請(qǐng)求的用戶代理軟件的應(yīng)用類型、操作系統(tǒng)、軟件開發(fā)商以及版本號(hào)。
通俗的理解是用戶不能直接去網(wǎng)絡(luò)上拿信息,這個(gè)時(shí)候需要一個(gè)載體去代表用戶的行為,這個(gè)軟件(載體)叫做User-Agent。瀏覽器就屬于其中一種。
用戶通過不同的軟件,在特定的操作下,會(huì)觸發(fā)http請(qǐng)求, 每個(gè)請(qǐng)求下會(huì)攜帶UA,而網(wǎng)站的服務(wù)者會(huì)通過UA內(nèi)容,來下發(fā)不同的產(chǎn)物,從而提供差異化的服務(wù)。
UA存在一些內(nèi)容可以了解掌握的,比如如何準(zhǔn)確的判斷UA,UA標(biāo)準(zhǔn)語法是什么,UA的歷史等等。
拋個(gè)問題,UA的判斷,通過正則表達(dá)式么,一定很準(zhǔn)確么,答案當(dāng)然是錯(cuò)誤的,以下例子就可以說明:
iPad OS 13以上的 Safari 瀏覽器會(huì)默認(rèn)模擬Mac,這個(gè)時(shí)候 UA 與 Mac 完成一致,這種情況下,對(duì)于后端來說完全不可判斷,那么前端有啥辦法呢?
之前遇到過,正好沉淀了下來,比如:
通過navigator.maxTouchPoints 來判斷,即返回當(dāng)前設(shè)備能夠支持的最大同時(shí)觸摸的點(diǎn)數(shù)。
回到文章的主題,如何通過DevTools來實(shí)現(xiàn)屬于自己的UA,或者當(dāng)你需要本地代理特定的UA時(shí),應(yīng)該怎么做呢?
DevTools提供了特定的面板,讓我們來實(shí)操一下。
定制個(gè)性化的UA
首先,推薦一個(gè)查看UA的網(wǎng)站,如:
http://www.whatuseragent.com/
打開后,你會(huì)很方便的看到自己的UA:
打開命令面板
使用組合鍵(Cmd + Shift + P)打開命令面板:
查找網(wǎng)絡(luò)狀態(tài)(Network Conditions)
搜索Network conditions,點(diǎn)擊后會(huì)出現(xiàn)網(wǎng)絡(luò)狀態(tài)面板:
取消代理部分
我們需要取消勾選Use browser default,然后輸入您的自定義用戶代理或從預(yù)定義的用戶代理列表中選擇,比如我自定義用戶代理:
總結(jié)
本文介紹了如何修改UA,以及工作中跟UA相關(guān)的內(nèi)容,遇到的一些坑點(diǎn),比如Mac 與 iPad OS 13以上的 Safari 瀏覽器如何判斷,UA的內(nèi)容還是挺多的,這里篇幅有限,不展開討論了,感興趣可以深入了解一下。