一、简述一次完整的http请求经过?
HTTP通信机制是在一次完整的HTTP通信过程中,Web 浏览器与 Web 服务器之间将完成下列几个步骤:
1. 建立TCP连接。
2. Web浏览器向Web服务器发送请求命令。
3. Web服务器应答。
4. Web服务器关闭TCP连接。
5 浏览器接受到服务器响应的数据。
详情请点击:http请求经过
二、有哪些方式可以实现多个页面间通信?
cookie、web worker、localeStorage、sessionStorage
cookie,兼容性很好,但是大概4kb.同时,cookie可以永久存在,也可以再回话结束后结束。要就关闭标签页回话立即结束时,不要用cookie,因为它还很有可能会存在一段时间,即使是session-cookie。
用户在浏览器输入url,发送请求,服务器接受请求
服务器在响应报文中生成一个Set-Cookie报头,发给客户端
浏览器取出响应中Set-Cookie中内容,以cookie.txt形式保存在客户端
如果浏览器继续发送请求,浏览器会在硬盘中找到cookie文件,产生Cookie报头,与HTTP请求一起发送.
服务器接受含Cookie报头的请求,处理其中的cookie信息,找到对应资源给客户端.
浏览器每一次请求都会包含已有的cookie.
Sessionstorage:不支持跨标签页共享数据。比如,每次新开启一个标签页都要求用户重新登录。
Localstorage:此处作者用localstorage事件来解决这个问题。思路:当打开一个新的标签页的时候,先询问是否有sessionstorage。如果有,现有标签页通过localstorage事件向新页面传递sessionstorage,新页面获取后设置。
详情请点击:多个页面间通信
详情请点击:web worker
三、同步加载和异步加载分别有什么优缺点?
同步加载与异步加载的区别如下:
同步加载:同步模式,又称阻塞模式,会阻止浏览器的后续处理,停止了后续的解析,因此停止了后续的文件加载(如图像)、渲染、代码执行。
异步加载:异步加载又叫非阻塞,浏览器在下载执行 js 同时,还会继续进行后续页面的处理。
为何使用异步加载原因:
优化脚本文件的加载提高页面的加载速度,一直是提高页面加载速度很重要的一条。因为涉及到各个浏览器对解析脚本文件的不同机制,以及加载脚本会阻塞其他资源和文件的加载,因此更多的采用异步加载。
四、简述浏览器渲染页面过程?
1、浏览器解析html源码,然后创建一个 DOM树。
2、浏览器解析CSS代码,计算出最终的样式数据。构建CSSOM树。
3、DOM Tree + CSSOM --> 渲染树(rendering tree)。
4、一旦渲染树创建好了,浏览器就可以根据渲染树直接把页面绘制到屏幕上。
详情请点击:浏览器渲染页面过程
5、如何对网站的文件和资源进行优化?
详情请点击:如何对网站的文件和资源进行优化
6、Http状态码有哪些?分别代表什么含义?
详情请点击:Http状态码