zoukankan      html  css  js  c++  java
  • 浏览器的故事

    很久很久以前有一个浏览器名字叫 NCSA Mosaic
    很久很久以前有一个浏览器名字叫 NCSA Mosaic

    紧接着也出现了一个 Mozilla 的浏览器 (Mozilla 的意思是 Mosaic 终结者)
    后来 Mozilla 的正式发布版本是 Netscape 它把自己标称为Mozilla/1.0 (Win3.1)
    由于 Netscape支持框架显示,后来框架在大家中间流行起来了,但Mosaic不支持框架。
    所以网站管理员们则通过 User-Agent 判断,如果是Netscape浏览器则进入框架(html frame)的页面,如果不是Netscape 浏览器则进入没有框架的页面.

    Netscape 没有风光多久,微软也推出了自己的 IE浏览器 。IE浏览器也支持 框架 但是很遗憾,网站管理员们不认识它呀,因为IE的 User-Agent 没有Mozilla 所有没有人理它。后来微软抓狂了,你们不就是只认识User-Agent 头里有 Mozilla 字符的浏览器么,于是宣称自己是“兼容Mozilla”的,开始模仿Netscape,把自己标称为Mozilla/1.22 (compatible; MSIE 2.0; Windows 95)。这样一来 IE 也有了Mozilla (其实是伪装的...) 所以那些框架也能看到了.


    后来随着微软把浏览器捆绑进自己的操作系统里一起卖,随就爆发了浏览器大战。结果大家都很清楚,Netscape失败了。而微软大胜了,至今微软的IE依然影响着 w3c 影响着所有浏览器。


    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 的优秀,网站管理员们会判断浏览器是否是 Gecko 的,如果是则把更先进 更漂亮页面显示给这个浏览器,其他浏览器就没有这个待遇了。

    (比如现在的HTML5 , 如果我判断是你firefox的新版本则跳转到地址1,如果是ie则去地址2)


    看到 Gecko 能看到这么漂亮的页面 Linux 的平台的孩子们很桑心,因为他们创建了基于KHTML引擎支持的Konqueror也跟 Gecko 一样优秀,但却不带有Gecko而被识别。结果Konquerer开始伪装自己“像Gecko”那样以看到更漂亮的网页,并标称自己为 Mozilla/5.0 (compatible; Konqueror/3.2; FreeBSD)(KHTML, like Gecko),这个世界就抽风了....



    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,就更加混乱了.


    Google也开发了自己的浏览器Chrome,使用了Webkit,有点像Safari,希望能看到为Safari编写的网页,于是决定装成Safari。Chrome使用了WebKit渲染引擎,想装成Safari,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


    最后:  

    IE伪装成 Mozilla  
    webKit 伪装成 KHTML
    KHTML 伪装成 Gecko

    最后 opera 伪装成上面任何浏览器

    同时所有的浏览器又都宣称自己是 Mozilla,

    就是这样,把自己伪装得自己妈都不认识了,谁都不是谁的,谁也是谁的是。总之浏览器一塌糊涂.........

  • 相关阅读:
    BestCoder6 1002 Goffi and Squary Partition(hdu 4982) 解题报告
    codeforces 31C Schedule 解题报告
    codeforces 462C Appleman and Toastman 解题报告
    codeforces 460C. Present 解题报告
    BestCoder3 1002 BestCoder Sequence(hdu 4908) 解题报告
    BestCoder3 1001 Task schedule(hdu 4907) 解题报告
    poj 1195 Mobile phones 解题报告
    二维树状数组 探索进行中
    codeforces 460B Little Dima and Equation 解题报告
    通过Sql语句控制SQLite数据库增删改查
  • 原文地址:https://www.cnblogs.com/PopularProdigal/p/7081106.html
Copyright © 2011-2022 走看看