谷歌浏览器user-agent(谷歌浏览器useragent在哪里)

大家好,今天来为大家解答谷歌浏览器user-agent这个问题的一些问题点,包括谷歌浏览器useragent在哪里也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

谷歌浏览器user-agent(谷歌浏览器useragent在哪里)

本文目录

  1. 如何查询浏览器的User Agent是什么
  2. 为什么浏览器User-agent总是有Mozilla字样
  3. 如何修改Android自带浏览器的User Agent

一、如何查询浏览器的User Agent是什么

1、通过各浏览器自带的UserAgent修改功能查看当前浏览器UserAgent设置情况。如Maxthon(遨游)修改User Agent方法中就可查看遨游浏览器的UserAgent。

2、通过JS事件来查询。在浏览器地址栏中输入以下代码:javascript:alert(navigator.userAgent)回车,即可弹出当前浏览器UserAgent设置情况。

3、用网站测试:JS程序获取浏览器UA,原理类似上面的2。PHP程序获取浏览器UA。ASP程序获取浏览器UA,打开本站提供了四种浏览器UA测试页面,进行简单的UA查询。

二、为什么浏览器User-agent总是有Mozilla字样

你是否好奇标识浏览器身份的User-Agent,为什么每个浏览器都有Mozilla字样?

Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/27.0.1453.94Safari/537.36

Mozilla/5.0(Linux;U;Android4.1.2;zh-tw;GT-I9300Build/JZO54K)AppleWebKit/534.30(KHTML,likeGecko)Version/4.0MobileSafari/534.30

Mozilla/5.0(WindowsNT6.1;WOW64;rv:20.0)Gecko/20100101Firefox/20.0

Mozilla/5.0(compatible;MSIE9.0;WindowsNT6.0;Trident/5.0)

故事还得从头说起,最初的主角叫NCSAMosaic,简称Mosaic(马赛克),是1992年末位于伊利诺伊大学厄巴纳-香槟分校的国家超级计算机应用中心(NationalCenterforSupercomputingApplications,简称NCSA)开发,并于1993年发布的一款浏览器。它自称“NCSA_Mosaic/2.0(Windows3.1)”,Mosaic可以同时展示文字和图片,从此浏览器变得有趣多了。

然而很快就出现了另一个浏览器,这就是著名的Mozilla,中文名称摩斯拉。一说Mozilla=Mosaic+Killer,意为Mosaic杀手,也有说法是Mozilla=Mosaic&Godzilla,意为马赛克和哥斯拉,而Mozilla最初的吉祥物是只绿色大蜥蜴,后来更改为红色暴龙,跟哥斯拉长得一样。

但Mosaic对此非常不高兴,于是后来Mozilla更名为Netscape,也就是网景。Netscape自称“Mozilla/1.0(Win3.1)”,事情开始变得更加有趣。网景支持框架(frame),由于大家的喜欢框架变得流行起来,但是Mosaic不支持框架,于是网站管理员探测useragent,对Mozilla浏览器发送含有框架的页面,对非Mozilla浏览器发送没有框架的页面。

后来网景拿微软寻开心,称微软的Windows是“没有调试过的硬件驱动程序”。微软很生气,后果很严重。此后微软开发了自己的浏览器,这就是InternetExplorer,并希望它可以成为NetscapeKiller。IE同样支持框架,但它不是Mozilla,所以它总是收不到含有框架的页面。微软很郁闷很快就沉不住气了,它不想等到所有的网站管理员都了解IE并且给IE发送含有框架的页面,它选择宣布IE是兼容Mozilla,并且模仿Netscape称IE为“Mozilla/1.22(compatible;MSIE2.0;Windows95)”,于是IE可以收到含有框架的页面了,所有微软的人都嗨皮了,但是网站管理员开始晕了。

因为微软将IE和Windows捆绑销售,并且把IE做得比Netscape更好,于是第一次浏览器血腥大战爆发了,结果是Netscape以失败退出历史舞台,微软更加嗨皮。但没想到Netscape居然以Mozilla的名义重生了,并且开发了Gecko,这次它自称为“Mozilla/5.0(Windows;U;WindowsNT5.0;en-US;rv:1.1)Gecko/20020826”。

Gecko是一款渲染引擎并且很出色。Mozilla后来变成了Firefox,并自称“Mozilla/5.0(Windows;U;WindowsNT5.1;sv-SE;rv:1.7.5)Gecko/20041108Firefox/1.0”。Firefox性能很出色,Gecko也开始攻城略地,其他新的浏览器使用了它的代码,并且将它们自己称为“Mozilla/5.0(Macintosh;U;PPCMacOSXMach-O;en-US;rv:1.7.2)Gecko/20040825Camino/0.8.1”,以及“Mozilla/5.0(Windows;U;WindowsNT5.1;de;rv:1.8.1.8)Gecko/20071008SeaMonkey/1.0”,每一个都将自己装作Mozilla,而它们全都使用Gecko。

Gecko很出色,而IE完全跟不上它,因此useragent探测规则变了,使用Gecko的浏览器被发送了更好的代码,而其他浏览器则没有这种待遇。Linux的追随者对此很难过,因为他们编写了Konqueror,它的引擎是KHTML,他们认为KHTML和Gecko一样出色,但却因为不是Gecko而得不到好的页面,于是Konqueror为得到更好的页面开始将自己伪装成“likeGecko”,并自称为“Mozilla/5.0(compatible;Konqueror/3.2;FreeBSD)(KHTML,likeGecko)”。自此useragent变得更加混乱。

这时更有Opera跳出来说“毫无疑问,我们应该让用户来决定他们想让我们伪装成哪个浏览器。”于是Opera干脆创建了菜单项让用户自主选择让Opera浏览器变成“Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;en)Opera9.51”,或者“Mozilla/5.0(WindowsNT6.0;U;en;rv:1.8.1)Gecko/20061208Firefox/2.0.0Opera9.51”,或者“Opera/9.51(WindowsNT5.1;U;en)”。

后来苹果开发了Safari浏览器,并使用KHTML作为渲染引擎,但苹果加入了许多新的特性,于是苹果从KHTML另辟分支称之为WebKit,但它又不想抛弃那些为KHTML编写的页面,于是Safari自称为“Mozilla/5.0(Macintosh;U;PPCMacOSX;de-de)AppleWebKit/85.7(KHTML,likeGecko)Safari/85.5”,这进一步加剧了useragent的混乱局面。

因为微软十分忌惮Firefox,于是IE重装上阵,这次它自称为“Mozilla/4.0(compatible;MSIE8.0;WindowsNT6.0)”,并且渲染效果同样出色,但是需要网站管理员的指令它这么做才行。

再后来,谷歌开发了Chrome浏览器,Chrome使用Webkit作为渲染引擎,和Safari之前一样,它想要那些为Safari编写的页面,于是它伪装成了Safari。于是Chrome使用WebKit,并将自己伪装成Safari,WebKit伪装成KHTML,KHTML伪装成Gecko,最后所有的浏览器都伪装成了Mozilla,这就是为什么所有的浏览器User-Agent里都有Mozilla。Chrome自称为“Mozilla/5.0(Windows;U;WindowsNT5.1;en-US)AppleWebKit/525.13(KHTML,likeGecko)Chrome/0.2.149.27Safari/525.13”。

因为以上这段历史,现在的User-Agent字符串变得一团糟,几乎根本无法彰显它最初的意义。追根溯源,微软可以说是这一切的始作俑者,但后来每一个人都在试图假扮别人,最终把User-Agent搞得混乱不堪。

一句话结论:因为网站开发者可能会因为你是某浏览器(这里是Mozilla),所以输出一些特殊功能的程序代码(这里指好的特殊功能),所以当其它浏览器也支持这种好功能时,就试图去模仿Mozilla浏览器让网站输出跟Mozilla一样的内容,而不是输出被阉割功能的程序代码。大家都为了让网站输出最好的内容,都试图假装自己是Mozilla一个已经不存在的浏览器??

1995年8月16日:InternetExplorer

三、如何修改Android自带浏览器的User Agent

最近在研究Android自带的Chrome Lite浏览器,想修改下它的UserAgent,跟踪了下Android2.2的源代码,发现主要要修改如下几个地方:

1.platform/packages/apps/Browser/src/com/android/browser/BrowserSettings.java

2.platform/packages/apps/Browser/res/values/strings.xml

view plaincopy to clipboardprint?

<!-- Do not tranlsate. Development option-->

<string-array name="pref_development_ua_choices" translatable="false">

<item>Android</item>

<item>Desktop</item>

<item>iPhone</item>

<!-- Do not tranlsate. Development option-->

<string-array name="pref_development_ua_values" translatable="false">

这一段中pref_development_ua_choices对应的是Browser的debug模式下选择UserAgent时选项的名字,pref_development_ua_values对应的是不同的UserAgent,一会会讲到这些数字分别对应的是什么UserAgent。

在BrowserSettings.java中找到这两段:

view plaincopy to clipboardprint?

private static final String DESKTOP_USERAGENT="Mozilla/5.0(Macintosh;"+

"U; Intel Mac OS X 10_5_7; en-us) AppleWebKit/530.17(KHTML,"+

"like Gecko) Version/4.0 Safari/530.17";

private static final String IPHONE_USERAGENT="Mozilla/5.0(iPhone; U;"+

"CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18"+

"(KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16";

view plaincopy to clipboardprint?

public void update(Observable o, Object arg){

BrowserSettings b=(BrowserSettings)o;

s.setLayoutAlgorithm(b.layoutAlgorithm);

s.setUserAgentString(DESKTOP_USERAGENT);

s.setUserAgentString(IPHONE_USERAGENT);

由此可以看出第一段Java代码是不同的UserAgent字符串,从第二段代码中可以看出strings.xml中那个整数的数组和不同UserAgent的对应关系,0对应默认的UserAgent,即Android

Chrome Lite自己的UserAgent,1对应的是Mac OS的UserAgent,2对应的是IPhone OS的UserAgent。

有了上述信息,添加一个自己的UserAgent就不是什么难事了,首先在strings.xml中添加一个UserAgent选项的名字,然后添加一个序号,然后在BrowserSettings.java中添加一个自己的UserAgent字符串,然后在最后一个if后面写一个

view plaincopy to clipboardprint?

s.setUserAgentString(YOUR_OWN_USERAGENT);

OK,本文到此结束,希望对大家有所帮助。

声明:信息资讯网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,版权归原作者东方体育日报所有。若您的权利被侵害,请联系 删除。

本文链接:http://www.gdxhedu.com/news/187970.html