浏览器的用户代理(User-Agent)
最近在學(xué)習(xí)網(wǎng)絡(luò)爬蟲的東西,使用Jsoup來解析html文檔,在發(fā)出http請求的過程中需要配置用戶代理這一屬性,所以想具體了解一下。雖然已接觸javaweb開發(fā)兩年了,對http協(xié)議頭也有一定的了解,但也只是停留在表面。下面轉(zhuǎn)載一篇文章,希望大家共同學(xué)習(xí)。原文鏈接:http://blog.csdn.net/w6299702/article/details/41081225
用戶代理(User Agent)是用來表明瀏覽用戶的身份,讓網(wǎng)頁開發(fā)者可以得知訪問終端的信息。根據(jù)不同的終端發(fā)送不同的顯示內(nèi)容,例如桌面版和移動版發(fā)送不同的網(wǎng)頁內(nèi)容以適應(yīng)屏幕和操作系統(tǒng)的差別(即響應(yīng)式網(wǎng)頁的理解),或者是因為不同的瀏覽器支持的標(biāo)準(zhǔn)不一樣,這樣做的目的當(dāng)然是為了避免瀏覽器不支持的功能以及獲得更好的用戶體驗。
隨著瀏覽器市場的競爭愈加激烈,網(wǎng)頁開發(fā)者會根據(jù)最流行的瀏覽器,設(shè)計一個用戶體驗最好的網(wǎng)站。這對其他瀏覽器來說是一種打擊, 所以他們也會很快完善自身的缺陷,希望可以支持這些用戶體驗好的網(wǎng)頁效果。
最初是 Mozilla Firefox 瀏覽器設(shè)置了自己的用戶代理字符串,例如“Mozilla/1.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101Firefox/4.0.1”,此字符串表明這是一個 Windows 版的使用?Gecko?引擎(火狐瀏覽器內(nèi)核)的火狐瀏覽器。
隨后IE發(fā)現(xiàn)自己的展示的網(wǎng)頁效果沒有Firefox豐富,于是發(fā)布了兼容Firefox的User Agent,看一下IE 的用戶代理設(shè)置就能明白——“Mozilla/4.0 (compatible;MSIE 7.0; Windows NT 6.0)”。這個字符串的含義是什么呢?它表明這是一個可以和 Mozilla 兼 容的 Windows 版 IE7 瀏覽器。這樣,內(nèi)容提供商會根據(jù)“Mozilla”字符串信息,將發(fā) 送給 Firefox 瀏覽器的內(nèi)容也發(fā)送給 IE 瀏覽器,因為在他們看來,這些都是“Mozilla” 的瀏覽器。
?此后,瀏覽器市場,越加競爭激烈,為了相互兼容。蘋果的 Safari 瀏覽器也設(shè) 置了類似的代理,但是該瀏覽器額外加入了 AppleWebKit、Safari 等信息,隨著它的 流行(特別是移動領(lǐng)域),Chrome 等瀏覽器除了包含 Mozilla 之外,還添加了 Safari 瀏覽器的那些標(biāo)志信息,導(dǎo)致它的用戶代理字符串越來越長。
看一下Chrome的User-Agent
這里可以看出來,該Chrome是MAC的發(fā)布版,采用了兼容了Mozilla,Safari,內(nèi)核兼容AppleWebkit和Gecko
| 1 | User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36 |
看一下火狐的User-Agent
可以看出來,該Firefox為Windows平臺的發(fā)布版,內(nèi)核為Firefox的自家內(nèi)核Gecko
| 1 | User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0 |
看一下Mac上的Safari
看出來,兼容了Mozilla,為Mac系統(tǒng)的發(fā)布版,采用自家的Webkit內(nèi)核(Apple)
| 1 | User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14 |
最后是IE的User-Agent
看出來,兼容了Mozilla,采用兼容模式的IE10,采用自家的Trident內(nèi)核
| 1 | User-Agent:Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0) |
模擬移動設(shè)備
我們這里可以模擬一個移動設(shè)備來查看一下,顯示效果,模擬設(shè)備,Galaxy Note II ,通過該設(shè)備向服務(wù)端發(fā)送請求
請求標(biāo)頭,
| 1 | User-Agent:Mozilla/5.0 (Linux; U; Android 4.1; en-us; GT-N7100 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 |
由于網(wǎng)頁已經(jīng)經(jīng)過移動設(shè)備的顯示處理,所以,出現(xiàn)了寬度自適應(yīng)的顯示界面。
一切這些繁瑣的User-Agent,都是為了更好的網(wǎng)頁內(nèi)容體驗。 從上面幾個主流瀏覽器,可以看出,因為某種瀏覽器的流行,很多網(wǎng)頁內(nèi)容提供商和網(wǎng)站需要根據(jù)流行的瀏覽器來定制內(nèi)容,當(dāng)后來者需要相同內(nèi)容的時候,就只能是通過這些用戶代理的信息來模仿獲得。
總結(jié)
以上是生活随笔為你收集整理的浏览器的用户代理(User-Agent)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaScript原型链污染攻击
- 下一篇: 前端网页开发常用兼容css代码