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协议就有状态了。