`
zccst
  • 浏览: 3291777 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[BOM]navigator知识点

阅读更多
作者:zccst

历史
  最早的时候有一个浏览器叫NCSA Mosaic,把自己标称为NCSA_Mosaic/2.0 (Windows 3.1),它支持文字显示的同时还支持图片,于是Web开始好玩起来。

然后出现了一个新的网页浏览器,“Mozilla”,其实就是“Mosaic终结者”的意思,这搞的Mosaic很不爽,(毕竟Mosaic出道早,江湖老),新浏览器最后正式公布的名称是Netscape,它把自己标称为Mozilla/1.0 (Win3.1),更好玩了。Netscape支持框架显示,后来框架在大家中间流行起来了,但Mosaic不支持框架啊,于是伟大的“用户代-理人探测”技术出现了,如果是“Mozilla”,那就发给支持框架的页面,至于其他的浏览器,则发给不含框架的页面。

  Netscape想逗Microsoft玩儿,把Windows叫做“几乎不曾做过调试的设备驱动器”,后者很恼火。Microsoft于是推出了自己的 网页浏览器,叫做Internet Explorer,希望它能成为“Netscape终结者”。Internet Explorer也支持框架,但它不是Mozilla啊,所以没人给它发送带有框架的页面。Microsoft慢慢烦躁起来,不再寄希望于网站管理员逐渐 认识IE并给它发框架,而是宣称自己是“兼容Mozilla”的,开始模仿Netscape,把自己标称为Mozilla/1.22 (compatible; MSIE 2.0; Windows 95),这样Internet Explorer也能收到框架了,整个Microsoft狂喜,但网站管理员开始有点被搞糊涂了。

  Microsoft把IE和Windows一起卖,并且把产品也弄得比Netscape更好了,拉开了第一场浏览器之战。结果和大家知道的一样,Netscape被干掉了,Microsoft大胜、大喜。但是后来Netscape以Mozilla的新名称重生了,构造了Gecko,标称其为Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.1) Gecko/20020826,Gecko属于渲染引擎,表现优异。Mozilla开发了Firefox,标称为Mozilla/5.0 (Windows; U; Windows NT 5.1; sv-SE; rv:1.7.5) Gecko/20041108 Firefox/1.0,并且Firefox表现也非常优秀。Gecko扩张迅速,一些浏览器使用了它的代码并标称为Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7.2) Gecko/20040825 Camino/0.8.1 ,这是一个,还有Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.8) Gecko/20071008 SeaMonkey/1.0,另一个,它们都伪装成Mozilla,同时也都是基于Gecko支持的。 

  Gecko表现优秀,IE则很差劲,于是身份甄别再次发生,输送给Gecko的是设计良好的网页代码,其他浏览器就没有这个待遇了。Linux的跟随者很伤心,因为他们创建了基于KHTML引擎支持的Konqueror,但却不会被输送好代码,虽然他们自己认为KHTML和Gecko一样优秀,于是Konquerer开始伪装自己“像Gecko”那样以得到好的网页,并标称自己为Mozilla/5.0 (compatible; Konqueror/3.2; FreeBSD) (KHTML, like Gecko),这个世界更让人困惑了。

  后来出现了Opera这样的主儿,宣称“允许用户自己决定让浏览器装成谁”,它的菜单中提供了Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.51, Mozilla/5.0 (Windows NT 6.0; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.51,Opera/9.51 (Windows NT 5.1; U; en) 供大家来选择,选谁是谁。  

  Apple开发了Safari,使用了KHTML,同时也增加了很多新特性,后来干脆一锅煮,另起炉灶叫了WebKit,但是它有希望能够得到那些为KHTML编写的网页,于是Safari标称自己为Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5,这个世界更混乱了。  


  Microsoft越来越担心Firefox的发展,重新启动了Internet Explorer的开发,标称自己为Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0) ,可以很好的渲染代码,但那要看网站管理员是否指示它这么做。


  Google也开发了自己的浏览器Chrome, 使用了Webkit,有点像Safari,希望能得到为Safari编写的网页,于是决定装成Safari。这样啊,Chrome使用了WebKit渲染 引擎,想装成Safari,而WebKit呢又伪装自己是KHTML,KHTML呢又是伪装成Gecko的,同时所有的浏览器又都宣称自己是 Mozilla,于是,Chrome宣称自己是
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13,,UserAgent字符串彻底混乱了,也几乎不再发挥任何作用,每个人都宣称自己是别人,混乱充斥人间啊。

  有点调侃的味道,可以总结为一句话:Mozilla是Netscape的吉祥物,也是Netscape Navigator浏览器使用的内部开发代号。由于Netscape早期的影响力,直到今天,所有浏览器包括IE,向Web服务器报告自己的浏览器标识的 时候,都以 “Mozilla”开头,表明自己是Mozilla兼容的。这,就是原因啦。





浏览器四种内核:
Trident: IE 以Trident 作为内核引擎; 

Gecko: Firefox 是基于 Gecko 开发;  (Netscape6开始采用的内核)

WebKit: Safari, Google Chrome,搜狗浏览器的高速内核,傲游3 基于 Webkit 开发。  (苹果公司自己的内核)

Presto: Opera的内核,但由于市场选择问题,主要应用在手机平台--Opera mini


以chrome为例,查看navigator

appCodeName: "Mozilla"
appName: "Netscape"
appVersion: "5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36"

cookieEnabled: true

doNotTrack: null

geolocation: Geolocation  #地理位置

hardwareConcurrency: 4    #硬件协调

language: "zh-CN" 
languages: Array[2]

maxTouchPoints: 0
mimeTypes: MimeTypeArray
onLine: true              #是否联网
platform: "Win32"
plugins: PluginArray
product: "Gecko"
productSub: "20030107"
serviceWorker: ServiceWorkerContainer

userAgent: "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36"
//看看历史就懂了


vendor: "Google Inc."
vendorSub: ""

webkitPersistentStorage: DeprecatedStorageQuota
webkitTemporaryStorage: DeprecatedStorageQuota


chrome模拟手机

appVersion: "5.0 (Linux; Android 4.2.2; GT-I9505 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Mobile Safari/537.36"

userAgent: "Mozilla/5.0 (Linux; Android 4.2.2; GT-I9505 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Mobile Safari/537.36"


如果您觉得本文的内容对您的学习有所帮助,您可以微信:
分享到:
评论

相关推荐

    BOM之navigator对象和用户代理检测

    与其他BOM对象的情况一样,每个浏览器中的navigator对象也都有一套自己的属性。下表列出了存在于所有浏览器中的属性和方法,以及支持它们的浏览器版本 属性 说明 appCodeName 浏览器名称[所有浏览器都返回Mozilla]...

    SQL Navigator 6.7绿色版

    SQL Navigator一个神级的oracle数据库工具,比pl/sql工具要方便很多,某上市公司指定oracle开发工具,执行几十M的脚本一点不卡。

    2一面 2:JS-Web-API 知识点与高频考题解析.md

    # 一面 2:JS-Web-API 知识点与高频考题解析 除 ES 基础之外,Web 前端经常会用到一些跟浏览器相关的 API,接下来我们一起梳理一下。 ## 知识点梳理 - BOM 操作 - DOM 操作 - 事件绑定 - Ajax - 存储 ------ ##...

    SQL Navigator 5.5.rar

    SQL Navigator 5.5

    SourceNavigator_6.0

    Source-Navigator is a source code analysis tool. With it, you can edit your source code, display relationships between classes and functions and members, and display call trees. You can also build ...

    OptiX Navigator 6.2.rar

    OptiX Navigator 6.2

    KEYENCE LK-Navigator2(基恩士激光控制器)

    KEYENCE LK-Navigator2(基恩士激光控制器)KEYENCE LK-Navigator2(基恩士激光控制器)KEYENCE LK-Navigator2(基恩士激光控制器)KEYENCE LK-Navigator2(基恩士激光控制器)KEYENCE LK-Navigator2(基恩士激光...

    LK-Navigator中文手册

    LK-Navigator中文手册,软件的中文使用说明。便于学习和使用软件。

    Anaconda Navigator

    Anaconda Navigator Anaconda Navigator Anaconda Navigator

    OptiX Navigator 6.2

    OptiX Navigator 6.2

    LK-Navigator2.rar

    基恩士LK navigator2的工具软件,官网上没有软件,只有更新包,前段时间实验室电脑没有安装包,上传也给我自己做个备份

    修改 navigator.platform 的值.user.js

    修改 navigator.platform 的值.user.js

    Web Navigator V6.1 授权

    Web Navigator V6.1授权

    OptiX Navigator5.6r.zip

    OptiX Navigator5.6r.zip

    Source Navigator(Windows版)

    著名开源软件Source Navigator的Windows版本,解压可用。最好的查看源代码工具。功能强,界面超爽,再也不用烦恼SI的bug了。

    LJ-Navigator 2 .txt

    基恩士线激光设置软件LJ-Navigator 2 安装包,百度网盘链接

    Source-Navigator

    Red Hat Source-Navigator TM is a powerful code analysis and comprehention tool that provides a graphic framework for understanding and reengineering large or complex software projects. Source-...

    Navigator实例

    使用reactNative在0.44版本之后使用Navigator的实例项目。

    WinCC_WebNavigator

    WinCC WebNavigator 官方中文说明文档 :配置wincc WebNavigator 文档说明

    DBNavigator竖立显示

    有时在使用DBNavigator时需要让DBNavigator竖立起来使用,此代码可以实现该功能。

Global site tag (gtag.js) - Google Analytics