每個訪問網站的客戶端都會發送請求頭(User-Agent),用來告訴伺服器訪問者的身份信息,伺服器通過判斷這個請求頭來返回適合該客戶端的響應。
一、微信User-Agent大全
在微信開發中,需要獲取微信客戶端的User-Agent。下面是微信不同版本的User-Agent:
Mozilla/5.0 (iPhone; CPU iPhone OS 12_1_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/16D57 MicroMessenger/7.0.3(0x17000320) NetType/WIFI Language/zh_CN Mozilla/5.0 (iPad; CPU OS 12_1_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/16D57 MicroMessenger/7.0.3(0x17000320) NetType/WIFI Language/zh_CN Mozilla/5.0 (iPhone; CPU iPhone OS 12_1_4 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Mobile/16D57 MicroMessenger/6.7.4 NetType/WIFI Language/zh_CN Mozilla/5.0 (iPad; CPU OS 12_1_4 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Mobile/16D57 MicroMessenger/6.7.4 NetType/WIFI Language/zh_CN
通過正則表達式可以提取微信的版本號和操作系統信息:
const userAgent = navigator.userAgent; const regexp = /MicroMessenger\/([\d\.]+)/i; const match = userAgent.match(regexp); const wxVersion = match && match[1] || '';
二、瀏覽器User-Agent大全
瀏覽器的User-Agent有很多種,比如:
- Chrome的User-Agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
- Firefox的User-Agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0
- Safari的User-Agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.2 Safari/605.1.15
對於瀏覽器的User-Agent,一般用途是判斷瀏覽器類型和版本號。可以通過以下代碼獲取到瀏覽器的vendor、type和version:
const userAgent = navigator.userAgent.toLowerCase(); const vendor = /(chrome|firefox|safari|opera)/.exec(userAgent)[1]; const type = /(msie|trident)/.test(userAgent) ? 'IE' : ''; const version = /(?:[^\s]+(?:ri|ox|ya|me|it|ra|x))?\s?(\d+\.\d+)/.exec(userAgent)[1];
三、User-Agent在線檢測
使用User-Agent在線檢測服務,可以檢測出不同User-Agent的系統、瀏覽器、渲染引擎、機型等信息。下面是三個常用的User-Agent在線檢測服務:
使用這些服務,可以更加深入地了解不同User-Agent字元串的組成和含義,方便進行User-Agent的匹配和處理。
四、User-Agent獲取和修改
在JavaScript中,可以通過navigator.userAgent獲取到當前客戶端的User-Agent。一般情況下不建議修改User-Agent,但是我們可以在移動端的WebView中修改User-Agent,以便更好地適配不同設備。下面是修改User-Agent的代碼:
// 修改User-Agent navigator.__defineGetter__('userAgent', function(){ return 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.3'; });
五、獲取User-Agent和其它信息
在進行User-Agent匹配時,需要獲取當前客戶端的User-Agent和其它信息。下面是獲取User-Agent和當前URL的代碼:
// 獲取當前URL和User-Agent const url = window.location.href; const userAgent = navigator.userAgent; console.log(`url: ${url}`); console.log(`userAgent: ${userAgent}`);
除此之外,我們還可以獲取瀏覽器窗口尺寸、語言等信息:
// 獲取瀏覽器窗口尺寸和語言 const width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; const height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; const language = navigator.language || navigator.userLanguage; console.log(`width: ${width}`); console.log(`height: ${height}`); console.log(`language: ${language}`);
六、User-Agent如何理解
User-Agent是一種HTTP頭部,用來告訴伺服器客戶端的身份信息。常用於瀏覽器、爬蟲等,以便伺服器提供適合該客戶端的響應。用戶代理字元串(User-Agent String)是User-Agent的具體表現形式。在User-Agent字元串中,一般包含瀏覽器的類型、版本、操作系統、內核、設備型號、語言等信息。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/152641.html