1.浏览器缓存?

浏览器缓存分为强缓存和协商缓存。当客户端请求某个资源时,获取缓存的流程如下:

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

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

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

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服务器通过会话密钥加密与客户端之间的通信。

撩课-Web大前端每天5道面试题-Day27的更多相关文章

  1. 撩课-Web大前端每天5道面试题-Day10

    1. px和em的区别? px和em都是长度单位; 区别是: px的值是固定的,指定是多少就是多少, 计算比较容易. em得值不是固定的,并且em会继承父级元素的字体大小. 浏览器的默认字体高都是16 ...

  2. 撩课-Web大前端每天5道面试题-Day4

    1. 如何实现瀑布流? 瀑布流布局的原理: ) 瀑布流布局要求要进行布置的元素等宽, 然后计算元素的宽度, 与浏览器宽度之比,得到需要布置的列数; ) 创建一个数组,长度为列数, 里面的值为已布置元素 ...

  3. 撩课-Web大前端每天5道面试题-Day1

    1. var的变量提升的底层原理是什么? JS引擎的工作方式是: 1) 先解析代码,获取所有被声明的变量: 2)然后在运行.也就是说分为预处理和执行两个阶段. 变量提升:所有变量的声明语句都会被提升到 ...

  4. 撩课-Web大前端每天5道面试题-Day11

    1. 如何手写一个JQ插件? 方式一: $.extend(src) 该方法就是将src合并到JQ的全局对象中去: $.extend({ log: ()=>{alert('撩课itLike');} ...

  5. 撩课-Web大前端每天5道面试题-Day31

    1.web storage和cookie的区别? Web Storage的概念和cookie相似, 区别是它是为了更大容量存储设计的. Cookie的大小是受限的, 并且每次你请求一个新的页面的时候C ...

  6. 撩课-Web大前端每天5道面试题-Day25

    1.web前端开发,如何提高页面性能优化? 内容方面: .减少 HTTP 请求 (Make Fewer HTTP Requests) .减少 DOM 元素数量 (Reduce the Number o ...

  7. 撩课-Web大前端每天5道面试题-Day7

    1. 你能描述一下渐进增强和优雅降级之间的不同吗? 定义: 优雅降级(graceful degradation): 一开始就构建站点的完整功能, 然后针对浏览器测试和修复 渐进增强(progressi ...

  8. 撩课-Web大前端每天5道面试题-Day30

    1.什么叫优雅降级和渐进增强? 优雅降级: Web站点在所有新式浏览器中都能正常工作, 如果用户使用的是老式浏览器, 则代码会针对旧版本的IE进行降级处理了, 使之在旧式浏览器上以某种形式降级体验却不 ...

  9. 撩课-Web大前端每天5道面试题-Day23

    1.为什么用Nodejs,它有哪些优缺点? 优点: 事件驱动,通过闭包很容易实现客户端的生命活期. 不用担心多线程,锁,并行计算的问题 V8引擎速度非常快 对于游戏来说,写一遍游戏逻辑代码,前端后端通 ...

随机推荐

  1. 关于GridControl--gridview的下拉框列(下拉列表列)

    1.Run Designer→Columns→需要设置的列→Columns properties→ColumnsEdit→New→选择(repositoryItemComboBox1) 2.给下拉框列 ...

  2. Ef-Code-First 使用实体类映射出数据库

    最近面试时很多面试官都问到了EF框架 好记性不如烂笔头 赶紧记下来 code-first是EF框架中的一种,是使用实体类来进行数据库表的映射,所以实体类中的字段要规范(我认为) 比如: 如果有外键的话 ...

  3. CentOS 7 - 安装MySQL 5.7

    CentOS 7的默认yum仓库中并没有MySQL5.7,我们需要手动添加,好在MySQL官方提供了仓库的地址,所以我们能够比较简单地安装MySQL. 本文我们将介绍CentOS 7下MySQL5.7 ...

  4. Linux系统软件包的管理(4)

    虽然使用源码编译安装可以具有提高速度个性化的定制等优点,但对于 Linux发行商来说,则不容易管理软件包,毕竟不是每个人都会进行源码编译的,如果能够将软件预先在相同的硬体与系统上面编译好在发布的话,不 ...

  5. time clock getrusage clock_gettime gettimeofday timespec_get 对比

    http://stackoverflow.com/questions/12392278/measure-time-in-linux-time-vs-clock-vs-getrusage-vs-cloc ...

  6. 抓取分析网页批量下载评书(3)之批量下载mp3

         本系列目录:    <1.搜索有声小说>    <2.分析详细页地址>     <3.批量下载mp3>      本篇是大结局,看过前两篇的放心吧,不会有 ...

  7. sax解析xml,验证格式并支持自定义标签

    一.sax简介 SAX是事件驱动型的XML解析方式.顺序读取XML文件,生成事件,传播到用户定义的回调方法中来处理XML文件. 优点: 分段处理xml,而不是将整个xml一次加载进内存,内存占用少,速 ...

  8. C#6.0语言规范(九) 命名空间

    C#程序使用命名空间进行组织.命名空间既可以用作程序的“内部”组织系统,也可以用作“外部”组织系统 - 一种呈现暴露给其他程序的程序元素的方式. 提供了使用指令(使用指令)以便于使用命名空间. 编译单 ...

  9. 解决应用商店错误代码0x80072efd、0x80131505的方法

    解决应用商店错误代码0x80072efd.0x80131505的方法 使用win10系统的朋友应该都会经常使用应用商店这个程序吧?它是微软自带的软件下载程序!不过最近有位win10的朋友告诉小编,他的 ...

  10. JDK中ConcurrentHashMap效率测试

    比较HashMap HashTable 和ConcurrentHashMap的效率. 一般情况下,达到一定的数量之后JDK1.5之后提供的ConcurrentHashMap集合类的效率是前两者的3~4 ...