在此分享、整理前端面试题,若有解答错误的地方,烦请各位大佬指正,感谢!!css
Cross-site script,跨站脚本攻击,html
当其它用户浏览该网站时候,该段 HTML 代码会自动执行,从而达到攻击的目的,如盗取用户的 Cookie,破坏页面结构,重定向到其它网站等。前端
XSS 类型:面试
通常能够分为: 持久型 XSS 和非持久性 XSSredis
持久型 XSS 就是对客户端攻击的脚本植入到服务器上,从而致使每一个正常访问到的用户都会遭到这段 XSS 脚本的攻击。(如上述的留言评论功能)segmentfault
非持久型 XSS 是对一个页面的 URL 中的某个参数作文章,把精心构造好的恶意脚本包装在 URL 参数重,再将这个 URL 发布到网上,骗取用户访问,从而进行攻后端
防范:promise
CSRF(Cross-site request forgery), 中文名称:跨站请求伪造浏览器
CSRF 能够简单理解为:攻击者盗用了你的身份,以你的名义发送恶意请求,容易形成我的隐私泄露以及财产安全。安全
防范:
值得注意的是,过滤用户输入的内容不能阻挡 CSRF 攻击,咱们须要作的事过滤请求的来源,由于有些请求是合法,有些是非法的,因此 CSRF 防护主要是过滤那些非法伪造的请求来源。
利用目标系统网络服务功能缺陷或者直接消耗其系统资源,使得该目标系统没法提供正常的服务。
DDoS 攻击经过大量合法的请求占用大量网络资源,以达到瘫痪网络的目的。 具体有几种形式:
经过使网络过载来干扰甚至阻断正常的网络通信; 经过向服务器提交大量请求,使服务器超负荷; 阻断某一用户访问服务器; 阻断某服务与特定系统或我的的通信。
WebSocket是用于浏览器与服务器进行全双工通信的网络技术。
现不少网站为了实现即时通信,所用的技术都是轮询(polling)。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP请求,而后由服务器返回最新的数据给客服端的浏览器,这种方式有一个很大的弊端,就是会占用不少的带宽。
使用WebSocket,浏览器和服务器只须要要作一个握手的动做,而后,浏览器和服务器之间就造成了一条快速通道,二者之间就直接能够数据互相传送。并且它为咱们实现即时服务带来了两大好处:
参考:segmentfault.com/a/119000000…
(1)全部同步任务都在主线程上执行,造成一个执行栈(execution context stack)。
(2)主线程以外,还存在一个"任务队列"(task queue)。只要异步任务有了运行结果,就在"任务队列"之中放置一个事件。
(3)一旦"执行栈"中的全部同步任务执行完毕,系统就会读取"任务队列",看看里面有哪些事件。那些对应的异步任务,因而结束等待状态,进入执行栈,开始执行。
(4)主线程不断重复上面的第三步。
宏任务:script,setTimeout,setImmediate,promise中的executor
微任务:promise.then,process.nextTick
process.nextTick优先级高于Promise.then
www.ruanyifeng.com/blog/2014/1… juejin.im/post/59e85e…
TCP 三次握手结束后,开始发送 HTTP 请求报文。 请求报文由请求行(request line)、请求头(header)、请求体
1.请求行包含请求方法、URL、协议版本 2.请求头包含请求的附加信息,由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。 好比:Host,表示主机名,虚拟主机;Connection,HTTP/1.1 增长的,使用 keepalive,即持久链接,一个链接能够发多个请求;User-Agent,请求发出者,兼容性以及定制化需求。
3.请求体,能够承载多个请求参数的数据,包含回车符、换行符和请求数据,并非全部请求都具备请求数据
首先浏览器发送过来的请求先通过控制器,控制器进行逻辑处理和请求分发,接着会调用模型,这一阶段模型会获取 redis db 以及 MySQL 的数据,获取数据后将渲染好的页面,响应信息会以响应报文的形式返回给客户端,最后浏览器经过渲染引擎将网页呈如今用户面前。
当数据传送完毕,须要断开 tcp 链接,此时发起 tcp 四次挥手。