本文共 2299 字,大约阅读时间需要 7 分钟。
1.DNS解析
2.发送tcp连接
3.发送http请求
4.服务器处理请求并返回http报文
5.浏览器解析渲染界面
6.连接结束
1.解析过程
DNS解析是一个递归的过程。比如,你输入www.google.com网址后,首先在本地的域名服务器中查找,没找到就去根域名服务器查找,再没有去com顶级域名服务器查找,如此类推,知道找到ip地址,把它记录在本地(.=>.com=>google.com=>www.google.com)
2.DNS优化
DNS缓存:因为DNS的解析存在N个过程,每个过程都会影响性能。使用DNS缓存可以提高性能。DNS存在多级缓存,从离浏览器的距离排序,依次为:浏览器缓存,系统缓存,路由器缓存等等。
DNS负载均衡:DNS负载均衡技术的实现原理是在DNS服务器中为同一个主机名配置多个IP地址,将客户端的访问引导到不同的机器上去,使得不同的客户端访问不同的服务器,从而达到负载均衡的目的。
1.GET和POST的区别
a.get用于请求,post用于提交b.get只能发送普通格式的数据(URL编码格式),post发送的格式多种多样(纯文本,二进制)
c.get传输量小(受URL长度限制),post传输量大
d.get不安全(url是可见的,浏览器会缓存),post更安全(浏览器不会缓存post提交的数据)
2.http缓存(强缓存和协商缓存)
⑤HTTP的缓存机制
缓存的重要性不言而喻,通过网络请求资源缓慢并且降低了客户端的用户体验,增添了服务端的负担。很多短期之内不会经常发生变化的资源文件没必要每次访问都想服务端进行数据请求,而缓存策略的使用就是为了改善客户端的呈现时间,降低服务端的负担。
对于HTTP的缓存机制来说,策略体现在HTTP的头部信息的字段上,而这些策略根据是否需要重新向服务器端发起请求可以分为强缓存和协商缓存两大类。
强缓存相关的HTTP header 的字段
Expires(
expires 字段规定了缓存的资源的过期时间)
Cache-Control(缓存方式)
协商缓存相关的HTTP header 的字段
4.服务器处理请求并返回http报文
304 : 资源未改变
412:服务器在验证在请求的头字段中给出先决条件时,没能满足其中的一个或多个。这个状态码允许客户端在获取资源时在请求的元信息(请求头字段数据)中设置先决条件,以此避免该请求方法被应用到其希望的内容以外的资源上。
5.浏览器解析并渲染界面
- 解析HTML形成DOM树
- 解析CSS形成CSSOM 树
- 合并DOM树和CSSOM树形成渲染树
- 浏览器开始渲染并绘制页面 这个过程涉及两个比较重要的概念回流和重绘,DOM结点都是以盒模型形式存在,需要浏览器去计算位置和宽度等,这个过程就是回流。等到页面的宽高,大小,颜色等属性确定下来后,浏览器开始绘制内容,这个过程叫做重绘。浏览器刚打开页面一定要经过这两个过程的,但是这个过程非常非常非常消耗性能,所以我们应该尽量减少页面的回流和重绘
回流
DOM结点都是以盒模型形式存在,需要浏览器去计算位置和宽度等,这个过程就是回流。
导致回流的操作
一些常用且会导致回流的属性和方法:
clientWidth、clientHeight、clientTop、clientLeft
offsetWidth、offsetHeight、offsetTop、offsetLeft
scrollWidth、scrollHeight、scrollTop、scrollLeft
scrollIntoView()、scrollIntoViewIfNeeded()
getComputedStyle()
getBoundingClientRect()
scrollTo()
重绘
当页面中元素样式的改变并不影响它在文档流中的位置时(例如:color、background-color、visibility等),浏览器会将新样式赋予给元素并重新绘制它,这个过程称为重绘。
如何针对重绘进行优化
css
javascript
转载地址:http://exvm.baihongyu.com/