• 撩课-Web大前端每天5道面试题-Day27


    1.浏览器缓存?

    浏览器缓存分为强缓存和协商缓存。当客户端请求某个资源时,获取缓存的流程如下:
    
    先根据这个资源的一些 http header 判断它是否命中强缓存,
    如果命中,则直接从本地获取缓存资源,不会发请求到服务器;
    
    当强缓存没有命中时,客户端会发送请求到服务器,
    服务器通过另一些request header验证这个资源是否命中协商缓存,称为http再验证,
    如果命中,服务器将请求返回,但不返回资源,
    而是告诉客户端直接从缓存中获取,客户端收到返回后就会从缓存中获取资源;
    
    强缓存和协商缓存共同之处在于,
    如果命中缓存,服务器都不会返回资源;
    
    区别是,强缓存不对发送请求到服务器,但协商缓存会。
    
    当协商缓存也没命中时,服务器就会将资源发送回客户端。
    
    当 ctrl+f5 强制刷新网页时,直接从服务器加载,跳过强缓存和协商缓存;
    
    当 f5 刷新网页时,跳过强缓存,但是会检查协商缓存;

    2.如何实现sleep的效果(es5或者es6)?

    (1)while循环的方式
    function sleep(ms){
       var start=Date.now(),expire=start+ms;
       while(Date.now()<expire);
       console.log('1111');
       return;
    }
    执行sleep(1000)之后,休眠了1000ms之后输出了1111。上述循环的方式缺点很明显,容易造成死循环。
    
    (2)通过promise来实现
    function sleep(ms){
      var temple=new Promise(
      (resolve)=>{
      console.log(111);setTimeout(resolve,ms)
      });
      return temple
    }
    sleep(500).then(function(){
       //console.log(222)
    })
    //先输出了111,延迟500ms后输出222
    
    (3)通过async封装
    function sleep(ms){
      return new Promise((resolve)=>setTimeout(resolve,ms));
    }
    async function test(){
      var temple=await sleep(1000);
      console.log(1111)
      return temple
    }
    test();
    //延迟1000ms输出了1111
    
    (4).通过generate来实现
    function* sleep(ms){
       yield new Promise(function(resolve,reject){
                 console.log(111);
                 setTimeout(resolve,ms);
            })  
    }
    sleep(500).next().value.then(function(){console.log(2222)})

    3.http和https的基本概念?

    http: 超文本传输协议,是互联网上应用最为广泛的一种网络协议,
    是一个客户端和服务器端请求和应答的标准(TCP),
    用于从WWW服务器传输超文本到本地浏览器的传输协议,
    它可以使浏览器更加高效,使网络传输减少。
    
    https: 是以安全为目标的HTTP通道,简单讲是HTTP的安全版,
    即HTTP下加入SSL层,HTTPS的安全基础是SSL,
    因此加密的详细内容就需要SSL。
    https协议的主要作用是:
    建立一个信息安全通道,来确保数组的传输,确保网站的真实性。

    4.http和https的区别?

    http传输的数据都是未加密的,也就是明文的,
    网景公司设置了SSL协议来对http协议传输的数据进行加密处理,
    简单来说https协议是由http和ssl协议构建的可进行加密传输和身份认证的网络协议,
    比http协议的安全性更高。
    
    主要的区别如下:
    Https协议需要ca证书,费用较高。
    http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
    使用不同的链接方式,端口也不同,一般而言,http协议的端口为80,https的端口为443
    http的连接很简单,是无状态的;
    HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

    5.https协议的工作原理?

    客户端在使用HTTPS方式与Web服务器通信时有以下几个步骤:
    
    客户使用https url访问服务器,则要求web 服务器建立ssl链接。
    web服务器接收到客户端的请求之后,会将网站的证书(证书中包含了公钥),
    返回或者说传输给客户端。
    客户端和web服务器端开始协商SSL链接的安全等级,也就是加密等级。
    客户端浏览器通过双方协商一致的安全等级,建立会话密钥,
    然后通过网站的公钥来加密会话密钥,并传送给网站。
    web服务器通过自己的私钥解密出会话密钥。
    web服务器通过会话密钥加密与客户端之间的通信。
  • 相关阅读:
    20145310《信息安全系统设计基础》第二周学习总结
    20145310《信息安全系统设计基础》第一周学习总结
    20145310 第0周《信息安全系统设计基础》学习总结
    课程总结
    20145310《Java程序设计》第5次实验报告
    20145310 《Java程序设计》第10周学习总结
    20145310 《Java程序设计》第9周学习总结
    20145310《Java程序设计》第4次实验报告
    20145310《Java程序设计》第3次实验报告
    git的安装以及遇到的问题
  • 原文地址:https://www.cnblogs.com/gxq666/p/10223282.html
Copyright © 2020-2023  润新知