Friday, January 04, 2008

关于Firefox

今天看见了两篇关于Firefox(一下使用国际通行简称FF)的文章([图]研究人员称FireFox 2.0包含漏洞 可招致身份盗窃, Mozilla中国:淘宝不支持火狐,火狐当然也不要淘宝),感觉网友对于这个国外优秀开源浏览器还有很多误解,于是觉得很有必要写一篇文章.我的目的不是推荐什么浏览器,只是为了减少大家的一些误解.

  1. FF 与 IE

先说一句真话两个都是很好的浏览器.微软的IE以前是很不标准,但是那是在协议规范匮乏,应用不够丰富的年代,微软为了支持FrontPage等软件中推出的新功能在自家浏览器中支持了非标代码.说实话老程序员也知道那时候网页都是很不标准的,开发的页面基本上很难兼顾所有浏览器.IE还不是很流行的时候大家也都支持的是Navigator 中一大堆错误的实现,特别是在JS方面.

但是现在情况有了很大的改变,微软今年可以说是标准年,重量级的Office 2007和IE7都是开放标准软件.IE7更是支持了第三方W3C标准,包括JS的DOM. 我个人觉得这是一个很大的进步,而且现实是现在也不是那么讨厌IE了,但是IE7的标签浏览还是不可以和FF+TabMix匹敌,或者说差距巨大.(见下文)

另外今天看到有人说FF抄IE7,我觉得是反了.至少地址栏边上的搜索框,RSS订阅,反钓鱼等不是IE原创的.(这些功能在FF里很早就有了,只是FF没有像IE那样大张旗鼓的放出来占空间,你要用就自己打开就好了.)

  1. FF与Add-ons

很悲哀的是FF是很依赖Add-ons(插件)的浏览器,基本的FF都还带了一个Dom inspector和crash report,而要想真正用得好,还得使用更多的插件.插件用好了,FF可以实现IE可以干的任何事(比如上网银,通过IETab(可惜也只是用于W32用户))和IE干不了的事(比如Gladder). 现在FF在国外已经很普遍了,所以大的外国集团开发的程序都支持FF,比如微软, Adobe, Apple, RealNetworks, DivX. 很多网站甚至为FF和IE不同的安全措施设置了不同的提示和截图,可以用FF访问微软WGA验证网站,你会看到人家提供FF用的验证程序,这显示了国外厂商的大气与开明:他们不回因为浏览器而失去潜在的客户.

和FF的广泛寻求插件支援的策略正好相反,微软正在积极的推行去ActiveX化,明显Java, Flash等越来越强大,而微软推行的ActiveX页面扩展却因为安全性和兼容性等多种问题难以得到广泛应用,所以他们推出了Silverlight这个可以在很多平台上运行的新交互手段,而且他们是借助了FF. FF通过良好的Plug-in支持很容易的在大部分主流平台上支持了Silverlight使用,填补了IE的空白,更帮助微软占领交互页面市场.

不过对中国用户,使用FF的最大障碍莫过于英文,很多重要的FF Add-on都不提供中文版本,这确实为其推广造成了一定影响.

推荐的FF Add-ons: (均可在官方addons页面搜索到,在Add-ons对话框点击Get add-ons)

  • Tabmix plus (让FF的标签页真的有用)
  • Gladder (翻墙用的,FF专供,IE用户:慢慢找代理去吧)
  • Flashgot(调用外部下载器用的,支持Thunder,Flashget等很多下载器)
  • GoogleToolbar(在FF里一点都不流氓的工具条,可以很完美的整合进FF的自定义工具栏,随便删除/移动按钮到任何地方,建议吧这个设置成中文的,而搜索框里放上英文的这样想找那种语言按下相应的搜索按钮即可)
  • IETab(调用IE内核显示页面,可以设定自动切换的地址,吧taobao.com和alipay.com加上就不会出讨厌的提示,注:这个插件有额外安全措施,不能安装Ie控件,请先用IE下载安装完成登录控件再使用)
  • Torbutton(配合Tor使用)
  • Read it Later(收集一个页面上你觉得有趣的链接,然后集中打开查看,适合看知识性页面/门户网站/cnbeta的时候)
  • Webmail notifier(可以检查Gmail,yahoo,hotmail等邮箱的邮件支持多个账户,一键登录,从此不用看登录页面)

Google账户拥有者专区:

  • Google工具栏必装,帮助你直接登录,不用输入密码,在线书签(bookmarks)功能也很有用
  • Google Browser Sync可以在多台电脑内同步使用信息,比如你回家以后可以看到你在公司的历史纪录,保存的密码和表单,可以直接恢复异地的标签.
  • Google gears,离线浏览工具
  • Google notebook,可以摘录网上的东西或者记点记录之类的,网页版可以RSS整合
  • Better Gmail (2) 用来给Gmail的web界面增加一些实用的小功能

非Windows用户/移动区:

下列插件都有更好的替代产品,但是对于非Windows用户/Firefox portable用户,能在不同平台上实用同一个软件不是更重要吗?(均支持Linux,MacOS X和win)

  • Google Browser Sync
  • FireFTP (chrome界面的FTP客户端,不支持中文)
  • Downthemall! 多线程下载器

关于插件和扩展: (我承认我中文没学好,每次语文考试都不到80分,所以我宁愿用英文,我的系统,Office, Firefox等都是英文的所以有的时候我也不确定,所以我尽量用英文以求准确.看来这两个概念我是弄混了,确认一下Add-ons是扩展,Plug-ins是插件,还是反过来?) Plug-ins的作用是显示某一特定类型的页面内容,FF是通过响应MIME type来决定使用什么插件的,你可以用about:plugins 这个地址来查看映射表.我们常见的Flash等媒体播放器都是通过这种形式进入FF的.而Add-ons是用来丰富FF的功能的,一般Add-ons都是完全基于Java的,所以可以在任何平台上运行,只有少数调用外部程序.所以这里对于3中讨论的网银控件们应该以插件的形式进入为好,当然这需要他们使用MIME type因为clsid是没有的.

  1. FF和网银

我想要是聪明电的看到2也就明白怎么回事了,国内的开发者使用了微软已经有点过时的功能.当然这个也不能怪程序员,毕竟闭塞的天朝IE用户比较多,而且也没有什么其他更好的方式在IE中实现了. 但我只能说这样不代表不能支持FF,FF并不是没有提供外部开发的接口,Plug-ins功能也充分允许调用外部的dll,微软这样做了,Adobe这样做了,媒体播放插件都这么做了,就是国内的程序高手说:"这样不行."

再者我也看不到这些控件的必要性,首先我们实用的HTTPS协议已经很安全了,不知到这个控件还能怎样加密数据?要说是防止木马盗取密码,那么更有道高一尺魔高一丈,这写控件除了带来无数的安全警报和兼容问题,我没看出让我们的网上交易安全了多少. 最终只能说我们银行系统安全保证能力和国内公安办案效率低,在国外网上刷信用卡都是不要密码的,所有要填的信息都在卡面上.用户丢了卡造成的损失挂失24小时内都是银行负责.

  1. FF和漏洞

最近看到很多有建设性的论断说IE爆出的漏洞比FF少,说实话真不知道信这样的话的人有没有接受过初中教育.我记得初一的时候生物老师就叫我们控制变量了,那么大家想一想IE是什么时候出现的,到现在版本号多少?FF呢? 再想想软件在什么阶段漏洞会比较多? 再想想IE出现的漏洞都被统计了吗?有多少又被微软归为系统漏洞而修正了呢?(IE的主要核心shdocw,mshtml,ole32等全是系统组件,你说微软更新了他们会说是修补IE漏洞吗?)

但是理论上说,FF因为编写更为严谨可以避免很多错误,当然出现的错误也都在不断变化的版本号中修复了.我们要看到FF作为开源软件,受到无数爱好者,支援者和开源社区开发人员的支持,其中任何程序性的错误很容易会被发现,而IE, opera等浏览器是没有这个优势的. 还有要注意到的是,FF的windows版本普遍比其他系统上的版本bug多,这也说明不少bug实际上是微软的设计错误或者资料的不清楚造成的(比如前段时间的url问题),微软对于很多敏感应用的含糊态度使得程序员只能按照猜想或者理论甚至其他系统上的经验来设计程序,很有可能造成不兼容或者安全隐患.

  1. FF与广告

简单介绍一下讨厌人的FF广告的由来: 他们实际上是Google的一个商业推广计划,推广的是带Google工具栏的FF(注意:这是给钱的条件,没有工具栏不算).好像用户每次被引导到Google去下载,网站拥有者便可以拿到一点钱.当然Google的好意是推广一个暂时没有其他工具栏的浏览器,而且Google工具栏+FF实际上是很好用的绝佳组合.可是Google没有意识到某些中国人的无耻和对美元铜臭味的喜爱,于是网上出现了铺天盖地的下载FF的广告.不过可笑的是IE用户在骂这些广告的同时,很少有人跑到WU的网站看看自己的IE到底有没有漏洞没有补上,当然还有很多人是海盗的因素.

  1. FF与Gecko引擎

很多用户分不清渲染引擎和浏览器,准确点说浏览器可以是任何东西,一个Telnet命令行,一个英特网打印机,一个超文本咖啡壶(as defined in RFC2324),甚至一个机器人.只要是能通过标准的HTTP协议把服务器对用户请求的响应转换成用户能够理解形式的软硬件都可以算是浏览器.而我们讲的FF和IE只是特例.就是图形化html浏览器也分很多种,当然现在流行的分法是看本质:即渲染引擎.FF实用的是由前Netscape程序员带走的Gecko引擎,有些其他的浏览器也使用这个引擎,总的来说这个引擎还是相当年轻,但是因为其一开始的设计理念就是标准化,Gecko对W3C的标准是严格执行的.但是和Opera的不同,Gecko在对流行的tag和语法上支持还是很不错的,一个FF上能勉强现实的页面,通常不会和IE中的差太多,但是绝对不会是Opera那种惨不忍睹的效果.(有点扯远了)而使用IE内核(实际上是操作系统系统的一套页面解析工具)的浏览器就更多了,比如Maxthon等,他们多多少少都对IE的不足予以程序上的补充(如多标签等)和修正(比如Maxthon中对XML对象请求假死的修正),但是他们都不能避免IE内核和系统结合过于紧密带来的问题.FF对于很多功能的支持与系统的实现是独立的,这是安全和跨平台的需要,而IE对于COM等的处理是完全依赖系统的,也就是说IE中的安全漏洞很有可能涉及到系统,很多人可能都还记得98年代IE崩溃往往还要扯上外壳.现在虽然有所改进,但是作为系统的一部分IE还是很危险.

准确点说FF官方版本是由Mozilla基金会主持开发的.作为一个非营利的基金会,Mozilla的地位是很特殊的,其生存之道在于开发出更好的软件以换取人们的捐献.除了少数核心开发人员可能是Mozilla的雇员外,其他的很多参与者可能都不能从基金会得到一个子,他们的参与完全是自愿的,但是却是有组织有责任的.这在国人听来可能是天方夜谭,但是在开源社区的开发方式在国外是很普遍的.

关于有的网站的动态内容只能在一个浏览器中正常工作的现象: 这个现象和引擎有关也和JavaScript的实现有关.有些引擎就是不支持某些功能,比如IE6不可以支持[半]透明的png(好吧,准确点说是[CSS中定义的]alpha通道混合效果),而其他任何引擎都不支持DHTML页面.而有些和JS过多的版本和标准有关(这个问题还没有得到更本解决).当然IE浏览器目前问题最大,因为旧版本的IE的DOM(文档对象,用于操纵页面文件的接口)是完全不标准的,如果使用W3C的DOM那么就没法访问正确的node那么自然无法操作,还有IE不支持标准的XML接口而得使用自己的MSXML对象访问,使得异步数据传输困难重重.负责的程序员一般会通过检查useragant来调用适当的代码以使访问正常进行,但是国内很多程序员只会写微软版本的代码或者懒得再为其他的模型重写接口.

  1. FF与更新

这个问题是该提一下:FF的更新系统在浏览器中间还是很高效好用的,首先所有更新都是启动时安装,也就是说你只要预先连接好互联网就可以得到最新版本的保护.第二,FF采用的升级系统速度也还可以,应该是有增量升级的功能(这个没仔细研究过),下载量和速度都是可以接受的.再者,以前FF升级频率不高,但是过去2个月版本号是跳的很快,可能是不断修复Bug导致.我最欣赏FF的地方就是它自动检查Add-ons的更新,这个是其他浏览器里少有的功能,而且FF的Add-on一半也就几百KB,下载起来也不费力,相比满网络的找插件更新版,反复卸载重启的体验来说要好的多.

但是不少IE用户被微软蒙蔽了,如果仔细看看我觉得从XP发布到现在微软已经几乎把它用到的所有dll更新过n遍了,却有人说IE更新的少.估计有些人是连WU的存在都不知道(可恶的海盗们),它那个更新哪有一点效率可言?IE7在这方面也没什么本质改进,不过Vista内置的WU比XP的高效点罢了,但也做不到不重启就能应用新补丁. FF还有另外一个好处就是它升级不会留下垃圾文件,而IE的补丁呢?大家自己到Windows目录里看看 吧.

<!—an very ugly breakerà

先写这么多,欢迎来信探讨. 本文以GFDL发布但建议转载时提供到原文链接以便用户查找最新版本. This blog entry is published under GNU Free Documentation License, yet I suggest you leave a link for the viewer to locate the latest revision.

赞一下cnBeta的访问效果 另简介一下:我还是一个学生 我也绝对不傻 相反我有非常好的理由证明我比国内很多IT从业者聪明 但是出于各种理由我就不说了 聪明的话自己在这里翻翻把…

再说一句,我对cnBeta由it新闻社区变成骂人的地方感到悲哀…

另外我还是很喜欢微软的某些东西的,比如Office2007,这篇文章就是在里面写的.

1 comments:

hector said...

来支持一下!

Subscription

Enter your email address:

Delivered by FeedBurner

Subscribe with Google Subscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with RojoSubscribe with BloglinesSubscribe with NetvibesSubscribe with PageflakesSubscribe with Live.com