Bootstrap

ES6面试题:(第三天)

目录

11.前端性能优化相关理解

12.什么是事件循环loop?什么是宏观任务和微观任务(宏队列和微队列)

13.web安全及防护

14.如何理解HTTP协议是无状态的,如何让其有状态


11.前端性能优化相关理解

1、减少http请求,合理浏览器缓存。

2、启用压缩:HTML、CSS、javascript文件启用GZip压缩可达到较好的效果。

3、CSS Sprites:合并 CSS图片,减少请求数的又一个好办法。

4、LazyLoad Images:在页面刚加载的时候可以只加载第一屏,当用户继续往后滚屏的时候才加载后续的图片。

5、CSS放在页面最上部,javascript放在页面最下面:让浏览器尽快下载CSS渲染页面。

6、异步请求Callback(就是将一些行为样式提取出来,慢慢的加载信息的内容)。

7、Javascript代码优化。

12.什么是事件循环loop?什么是宏观任务和微观任务(宏队列和微队列)

事件循环loop,宏观任务和微观任务 · 语雀 《事件循环loop,宏观任务和微观任务》

13.web安全及防护

1.XSS攻击原理(跨站脚本攻击):

攻击者往Web页面里插入恶意 html标签或者javascript代码。

用来窃取cookie中的用户信息

解决:对一些输入的字符进行过滤,尽量采用post表单提交的方式。

2.CSRF攻击(跨站请求伪造):

登录受信任的网站A,并在本地生成Cookie,在不登出A的情况下,携带cookie去访问危险网站B

解决:通过验证码的方式解决

3.SQL注入攻击

就是通过吧SQL命令插入到Web表单递交或输入域名,最终达到欺骗服务器执行恶意的SQL命令。

解决:表单输入时通过正则表达式将一些特殊字符进行转换

14.如何理解HTTP协议是无状态的,如何让其有状态

http协议呢,是一种超文本传输协议,而为什么说http协议是无状态的呢,是因为当浏览器第一次发送数据给服务器时,服务器响应了;如果同一浏览器,向服务器第二次发送请求时,它还是会响应,但服务器并不知道你就是刚才那个浏览器。简而言之,服务器是不会记住你是谁的,所以是无状态的。

而如果要使http协议有状态,就可以使浏览器访问服务器时,加入cookie,session或者token这样解决方案,帮助服务器记录,服务器就能够通过记录知道,你就是之前那个浏览器,这样的话,http协议就有状态了。

;