java request.getHeader("user-agent")獲取瀏覽器信息的方法
一、User Agent的含義
User Agent中文名為用戶代理,簡(jiǎn)稱 UA,它是一個(gè)特殊字符串頭,使得服務(wù)器能夠識(shí)別客戶使用的操作系統(tǒng)及版本、CPU 類型、瀏覽器及版本、瀏覽器渲染引擎、瀏覽器語(yǔ)言、瀏覽器插件等。
一些網(wǎng)站常常通過(guò)判斷 UA 來(lái)給不同的操作系統(tǒng)、不同的瀏覽器發(fā)送不同的頁(yè)面,因此可能造成某些頁(yè)面無(wú)法在某個(gè)瀏覽器中正常顯示,但通過(guò)偽裝 UA 可以繞過(guò)檢測(cè)。
瀏覽器的 UA 字串
標(biāo)準(zhǔn)格式為: 瀏覽器標(biāo)識(shí) (操作系統(tǒng)標(biāo)識(shí); 加密等級(jí)標(biāo)識(shí); 瀏覽器語(yǔ)言) 渲染引擎標(biāo)識(shí) 版本信息
瀏覽器標(biāo)識(shí)
由于很多網(wǎng)站在進(jìn)行 UA 檢測(cè)的時(shí)候忽略了兩位數(shù)版本號(hào),所以可能造成 瀏覽器及之后版本收到糟糕的頁(yè)面,因此自 瀏覽器 10 之后的版本中瀏覽器標(biāo)識(shí)項(xiàng)固定為 瀏覽器,在 UA 字串尾部添加真實(shí)版本信息。
注:來(lái)源自百度百科
當(dāng)在瀏覽器發(fā)起一個(gè)請(qǐng)求后,我們可以查看請(qǐng)求信息。
Request Headers:請(qǐng)求頭會(huì)包含請(qǐng)求信息。
二:獲得瀏覽器請(qǐng)求頭中的User-Agent
(1)請(qǐng)求
String userAgent = request.getHeader("user-agent");
(2)獲取
User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
三、UserAgentUtils.jar
UserAgentUtils.jar是UserAgent的工具類。
(1)maven
<!-- https://mvnrepository.com/artifact/eu.bitwalker/UserAgentUtils --> <dependency> <groupId>eu.bitwalker</groupId> <artifactId>UserAgentUtils</artifactId> <version>1.20</version> </dependency>
(2)java代碼
UserAgent userAgent = UserAgent.parseUserAgentString(request.getHeader("User-Agent"));
Browser browser = userAgent.getBrowser();
OperatingSystem os = userAgent.getOperatingSystem();
參考文章:
java 獲取HttpRequest Header的幾種方法(必看篇)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
舉例詳解用Java實(shí)現(xiàn)web分頁(yè)功能的方法
這篇文章主要介紹了舉例詳解用Java實(shí)現(xiàn)web分頁(yè)功能的方法,這種基本功能現(xiàn)一般通過(guò)Hibernate框架來(lái)完成,需要的朋友可以參考下2015-10-10
使用JSCH框架通過(guò)跳轉(zhuǎn)機(jī)訪問(wèn)其他節(jié)點(diǎn)的方法
下面小編就為大家分享一篇使用JSCH框架通過(guò)跳轉(zhuǎn)機(jī)訪問(wèn)其他節(jié)點(diǎn)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12
Java8中Stream?API的peek()方法詳解及需要注意的坑
這篇文章主要給大家介紹了關(guān)于Java8中Stream?API的peek()方法詳解及需要注意的坑,Java 中的 peek 方法是 Java 8 中的 Stream API 中的一個(gè)方法,它屬于中間操作,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-06-06
Java實(shí)現(xiàn)多用戶注冊(cè)登錄的幸運(yùn)抽獎(jiǎng)
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)多用戶注冊(cè)登錄的幸運(yùn)抽獎(jiǎng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11
如何在Spring?Boot微服務(wù)使用ValueOperations操作Redis集群String字符串
這篇文章主要介紹了在Spring?Boot微服務(wù)使用ValueOperations操作Redis集群String字符串類型數(shù)據(jù),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06
MybatisPlus #{param}和${param}的用法詳解
這篇文章主要介紹了MybatisPlus #{param}和${param}的用法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09

