浏览器内核比较

原网址:请点击

目前世界上主要的浏览器,一个手指可以数的过来(不包括 Maxthon 调用其他浏览器的这类),主要有:IE、Firefox、Opera、Konqueror 以及 Safari。

IE 使用 Trident 引擎,闭源,只有微软的 IE 在使用,类似 Maxthon之类的 IE MOD,只是在调用 IE,没有调用底层的引擎,目前市场占有率世界第一。

Firefox 使用 Gecko 引擎,就是以前的 Netscape 使用的 Mozilla 引擎,Netscape 倒了以后,成立了 Mozilla 基金会,将这个引擎完全重写,开源,使用这个引擎的还有 K-Meleon/Flock 比较知名,因为跨平台,加上 IE6 以后,微软迟迟不发新版本,市场占有率达到了第二。

Konqueror:使用 KDE 小组自己开发的 KHTML 引擎,开源,速度非常快。

Safari 使用的引擎是苹果公司根据 KHTML 修改来的 WebCore(还是叫 WebKit?我查到两种说法),闭源,IPhone 上的浏览器也是用这个引擎,由于苹果的关系,市场占有率反而比 Konqueror 高很多。

Opera 的引擎是 Presto,闭源,也是跨平台的,速度也很快,原先的老二,但是现在被 Firefox 完全打败了。

微软的IE是个很霸道的浏览器,他的Frontpage和Word生成HTML页面很多时候只有IE才能读取,其他的浏览器均会出毛病。其根本原因是IE自创了许多非标准的HTML语法,与XHTML精神背道而驰。Firefox为了占领市场,现在也在越来越多的支持IE语法。但当一个浏览器支持的语法过于复杂的时候,它的排版速度也会变慢。Konqueror是一个十分严格的浏览器,它采用了十分苛刻的KHTML引擎。

现在浏览器进入了百家争鸣,一家独大的局面。其实在10多年前就有过一场浏览器大战。1994年10月13日Mosaic Netscape 0.9上市,这套软件后来更名为Netscape Navigator。Netscape Navigator为各操作系统的用户提供一个一致的因特网使用体验,即跨平台。这吸引到微软的注意。因为它无视操作系统,微软视它为对Microsoft Windows的直接威胁。作为Windows 95的Microsoft Plus!附购品,微软释出Internet Explorer 1.0。微软以最快的速度推出了数个连续版本的Internet Explorer。那些版本都是随Windows附送的,用户可免费使用(Netscape Navigator当时是收费的)。这个时期现在称为“浏览器大战”。为了超越对方,当时网景和微软都分别在它们的浏览器上加上许多功能(虽然未必能正常运作),版本号码亦增加得很快(虽然未必合乎逻辑)。因为拥有专注的人力和财力,Internet Explorer当时是处于上方的。到4.0版,用户认为Internet Explorer运作上是比较稳定的。在对于网景其他的产品,微软亦提供了相对应的免费产品,例如随Windows NT附送的Internet Information Server(IIS)服务器软件。Netscape最终被IE完全打败了。现在的Netscape Browser是一款在Windows操作系统执行的网页浏览器,由美国在线(AOL)发行,开发方面则委托加拿大公司Mercurial Communications负责。该款浏览器是自网景通讯公司结束浏览器开发业务后,首款以Netscape名义推出的浏览器,也是Netscape浏览器系列的延续。2008年3月,网景官方正式倒闭。

目前很流行的Firefox在很多方面都超越了IE,它的内核是Gecko。Gecko是套开放原始码的、以C++编写的网页排版引擎。目前为Mozilla家族网页浏览器以及Netscape 6以后版本 浏览器所使用。这软件原本是由网景通讯公司开发的,现在则由Mozilla基金会维护。这套排版引擎提供了一个丰富的程序界面以供因特网相关的应用程序使用,例如网页浏览器、HTML编辑器、客户端/服务器等等。虽然最初的主要对象是Mozilla的衍生产品,如Netscape和Mozilla Firefox,现在已有很多其他软件现在利用这个排版引擎。Gecko是跨平台的,能在Microsoft Windows、Linux和Mac OS X等主要操作系统上运行。Gecko为第2个最流行的排版引擎,仅次于Trident(用于Windows版的Internet Explorer)。

在版本上,Netscape Browser属于第8版,建基于Mozilla Firefox,而第6及7版则是基于Mozilla Suite。 KHTML是HTML网页排版引擎之一,由KDE所开发。

KDE系统自KDE2版起,在档案及网页浏览器使用了KHTML引擎。该引擎以C++编程语言所写,并以LGPL授权,支援大多数网页浏览标准。由于微软的Internet Explorer的占有率相当高,不少以FrontPage制作的网页均包含只有IE才能读取的非标准语法,为了使KHTML引擎可呈现的网页达到最多,部分IE专属的语法也一并支援。

KHTML拥有速度快捷的优点,但对错误语法的容忍度则比Mozilla产品所使用的Gecko引擎小。

苹果电脑于2002年采纳了KHTML,作为开发Safari浏览器之用,并发布所修改的最新及过去版本源代码。后来发表了开放源代码的WebCoreWebKit引擎,它们均是KHTML的衍生产品,在开发网站列出引擎改变内容,并会传回至KDE计划。由于两个衍生产品各走不同路线,使两者源代码偏离,在与KDE交换更新会出现困难[1]。其中一个原因,是苹果在对外公开源代码之前,以一年时间编修他们的 KHTML。另外,苹果传送更新至KDE计划的方式,多是一口气把大量改动一起传送,KDE在整理资料也出现一定的困难,及后苹果表示会以CVS格式来传送。再者,苹果所作出的改动包括Mac OS X系统独有的事物,如Objective-CKWQ等,在LinuxKHTML是没有的。但KDE方面仍透过这些改动,为KHTML加入新功能及加快其排版速度。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Java中获取浏览器内核可以通过以下方式实现: 1. 使用User-Agent:可以通过获取客户端的User-Agent信息,从中提取浏览器名称和版本号来判断浏览器内核。通常,在User-Agent字符串中会包含浏览器的标识符和内核的版本信息。 2. 使用第三方库:可以使用第三方库来获取浏览器内核的相关信息。例如,可以使用库如"BrowserDetector"或"BrowserLauncher2"来获取浏览器的相关信息,包括内核信息。 3. 解析HTTP请求头:可以通过解析HTTP请求头中的"User-Agent"字段来获取浏览器内核的相关信息。使用Java的HTTP请求库,可以获取请求头的所有字段值,然后从中提取出浏览器内核的信息。 需要注意的是,以上方法都是基于浏览器发送的HTTP请求头中的User-Agent字段来判断浏览器内核,但是由于User-Agent可以被客户端篡改,所以无法保证100%准确性。此外,不同浏览器会使用不同的内核,因此在判断浏览器内核时应考虑到各种可能性。 ### 回答2: 要获取浏览器内核,可以使用Java中的User-Agent属性。User-Agent是浏览器发送给服务器的一个HTTP头部字段,用来标识浏览器和操作系统的信息。通过解析User-Agent,我们可以获取浏览器的内核信息。 在Java中,可以使用HttpServletRequest对象来获取User-Agent属性。首先,需要通过请求对象获取User-Agent属性的值,代码如下: ``` String userAgent = request.getHeader("User-Agent"); ``` 然后,我们可以通过正则表达式或其他方法来解析User-Agent,获取浏览器内核的信息。以下是一些常见浏览器内核的识别方法: 1. Trident内核(IE):匹配字符串"Trident"或"MSIE" 2. Gecko内核(Firefox):匹配字符串"Gecko"和"Firefox" 3. Webkit内核(Chrome、Safari):匹配字符串"Webkit"和"Chrome"或"Safari" 4. Presto内核(Opera):匹配字符串"Presto"或"Opera" 根据不同的内核,我们可以采取不同的处理逻辑。例如,根据内核选择使用特定的CSS样式或JavaScript代码。 综上所述,通过解析User-Agent属性,我们可以获取浏览器的内核信息,并根据不同的内核进行相应的处理。 ### 回答3: 要获取浏览器内核,我们可以使用Java编写一个简单的程序。首先,我们需要通过Java的网络编程功能,连接到目标网站,并获取目标网站的响应。 我们可以使用Java的URL类来创建一个URL对象,然后使用URLConnection类的openConnection()方法来打开与目标网站的连接。接下来,我们可以使用URLConnection对象的getInputStream()方法获取与目标网站的输入流。 要获取浏览器内核,我们可以检查目标网站的响应中的“User-Agent”标头。因为浏览器在发送HTTP请求时通常会在“User-Agent”标头中包含浏览器内核的信息。 可以通过URLConnection对象的getHeaderField()或getHeaderFieldKey()方法来获取“User-Agent”标头的值。我们可以通过判断此值是否包含特定的浏览器内核来确定浏览器内核。 例如,如果目标网站的响应中的“User-Agent”标头包含“WebKit”字符串,则可以判断该浏览器内核为Webkit内核。同样地,如果包含“Trident”字符串,则判断为Trident内核;如果包含“Gecko”字符串,则判断为Gecko内核。 最后,我们可以通过打印相应的信息来展示浏览器内核。 总之,使用Java编写的程序可以通过获取目标网站的响应,并检查其中的“User-Agent”标头信息,以获取浏览器内核的信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值