前端大杂烩之浏览器相关(二)

6. 浏览器的内核

  浏览器的内核有两部分,一个是渲染引擎,一个是JS引擎,由于JS引擎较为独立,所以内核更倾向于说是渲染引擎。

 1、Trident内核

  代表浏览器是IE,此内核只能用于Windows平台,且不是开源的。

 2、Gecko内核

  代表作品是Firefox,最大优势是跨平台,在Microsoft Windows、Linux、MacOs X等主要操作系统中使用。

 3、Webkit内核

  代表作品是Safari、曾经的Chrome,是开源的项目。

 4、Presto内核

  代表作品是Opera,Presto是由Opera Software开发的浏览器排版引擎,它是世界公认最快的渲染速度的引擎。在13年之后,Opera宣布加入谷歌阵营,弃用了Presto。

 5、Blink内核

  现在Chrome的内核是Blink。由Google和Opera Software开发的浏览器排版引擎,2013年4月发布。

7. HTTP 状态码为 200 from cache和304 Not modified的区别

请求状态码为 200 from cache:

  表示该资源已经被缓存过,并且在有效期内,所以不再向浏览器发出请求,直接使用本地缓存。

状态码为 304 Not modified:

  表示浏览器虽然发现了本地有该资源的缓存,但是不确定是否是最新的,于是想服务器询问,若服务器认为浏览器的缓存版本还可用(即还未更新),那么便会返回304,继续使用本地的缓存。

8. 什么是预加载、懒加载

预加载

  提前加载图片,当用户需要查看时可以直接从本地缓存中渲染。

懒加载

  懒加载也就是延迟加载。当访问一个页面的时候,先用占位图代替img元素或是其他元素的背景图片,这样就只需请求一次,只有当图片出现在浏览器的可视区域内时,才设置图片真正的路径,让图片显示出来。这就是图片的懒加载。

区别

  两者的行为是相反的,一个是提前加载,一个是迟缓甚至不加载。懒加载对服务器前端有一定的缓解压力作用,预加载则会增加服务器前端压力。

9. 一个 XMLHttpRequest 实例有多少种状态?

 XMLHttpRequest对象的readyState有5种状态:

  1、(未初始化): (XMLHttpRequest)对象已经创建,但还没有调用open()方法;

  2、(载入):已经调用open() 方法,但尚未发送请求;

  3、(载入完成): 请求已经发送完成;

  4、(交互):可以接收到部分响应数据;

  5、(完成):已经接收到了全部数据,并且连接已经关闭。

10. DNS解析原理

 DNS有两种类型的解析:

  1、递归解析(递归查询);

  2、反复解析(迭代查询);

  浏览器DNS查找顺序一般是这样的:浏览器缓存→系统缓存→路由器缓存→ISP DNS 缓存→递归搜索。

递归查询

  主机向本地域名服务器的查询一般都是采用递归查询。

  如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步查询。因此,递归查询返回的查询结果或者是所要查询的IP地址,或者是返回一个失败的响应,表示无法查询到所需的IP地址。

迭代查询

  本地域名服务器向根域名服务器的查询通常是采用迭代查询。

  当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么返回给本地域名服务器所要查询的IP地址,要么返回给本地域名服务器下一步应当查询的域名服务器的IP地址。

  举个例子:假设的主机想知道另一个主机(域名为 my.xxsilence.net)的IP地址。具体步骤如下:

① 主机先向其本地域名服务器进行递归查询,如果缓存中没有,继续下一步。  
  
② 本地域名服务器采用迭代查询,先向一个根域名服务器查询。
  
③ 根域名服务器告诉本地域名服务器,下一次查询的顶级域名服务器 dns.net。
  
④ 本地域名服务器向顶级域名服务器 dns.net。
  
⑤ 顶级域名服务器 dns.net,下一次应查询的权限域名服务器dns.xxsilence.net的IP地址。
  
⑥ 本地域名服务器向权限域名服务器dns.xxsilence.net进行查询。
  
⑦ 权限域名服务器dns.xxsilence.net告诉本地域名服务器,所查询的主机的IP地址。
  
⑧ 本地域名服务器最后把查询结果告诉主机。

11. COOKIE和SESSION有什么区别?

  1、session在服务器端,cookie 在客户端(浏览器);

  2、session默认被存在在服务器的一个文件里(不是内存)

  3、session 的运行依赖 session id,而 session id 是存在 cookie中的,也就是说,如果浏览器禁用了 cookie ,同时 session 也会失效(但是可以通过其它方式实现,比如在 url 中传递 session_id);

  4、session 可以放在文件、数据库、或内存中都可以;

  5、用户验证这种场合一般会用 session;

12. 拆解url的各部分

 完整的URL由这几个部分构成:

 scheme://host:port/path?query#fragment

  1、scheme:通信协议,常用的http,ftp,maito等

  2、host:主机、服务器(计算机)域名系统 (DNS) 主机名或 IP 地址。

  3、port:端口号,整数,可选,省略时使用方案的默认端口,如http的默认端口为80。

  4、path:路径,由零或多个"/"符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。

  5、query:查询,可选,用于给动态网页(如使用CGI、ISAPI、PHP/JSP/ASP/ASP.NET等技术制作的网页)传递参数,可有多个参数,用"&"符号隔开,每个参数的名和值用"="符号隔开。

  6、fragment:信息片断,字符串,用于指定网络资源中的片断。例如一个网页中有多个名词解释,可使用fragment直接定位到某一名词解释。(也称为锚点.)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值