模板建站有什么优势/seo优化师是什么
一、从输入URL到页面呈现发生了什么?----涉及的网络知识
1.构建请求
浏览器回构建请求行
请求行包含用于请求的方法,请求url和htpp版本
2.查找浏览器强缓存
如果过命中直接使用,如果没有命中则发起请求
关于浏览器缓存可参考之前写的文章:浏览器缓存
3.DNS域名解析
1.由于是分布式的域名系统所以会逐渐查找。
2.浏览器先检查自身缓存-》系统缓存host中有没有对应的已解析过的结果-》本地域名服务器-》Root Server 域名服务器请求解析-》顶级域名服务器-》权限域名服务器-》返回结果给本地域名服务器-》请求DNS客户
域名解析这里涉及:递归查询和迭代查询 而且查询时是用UPD用户数据报。高速缓存
3.高速缓存:高速缓存用来存放最近查询过的域名以及从何处获得域名映射信息的记录。
DNS详细内容可参考:《计算机网络第7版》–谢希仁 或者 博客:DNS原理总结及其解析过程详解
域名解析过程基本上是UDP协议,原因:域名解析传输数据量少,快速,而如果采用TCP协议的话,每一轮连接,都有三次握手四次挥手,DNS解析本身包含三次迭代还有一次递归过程,这样的话,四次TCP连接,就太耗时了,而且TCP协议一般用于数据量大的传输,可保证数据完全无误,虽然UDP不能保证数据完全无误,但因为其传输数据量少,以及快速,基本上也是不会出错的,且TCP协议虽然不负责DNS解析,但是他负责大量区域域名同步更新。
DNS中的七大资源记录介绍:
DNS中的七大资源记录介绍:
1,A记录
A记录也称为主机记录,是使用最广泛的DNS记录,A记录的基本作用就是说明一个域名对应的IP是多少, 它是域名和IP地址的对应关系,表现形式为 www.contoso.com 192.168.1.1 这就是一个A记录!A记录除了进行域名IP对应以外,还有一个高级用法,可以作为低成本的负载均衡的解决方案,比如说,www.contoso.com 可以创建多个A记录,对应多台物理服务器的IP地址,可以实现基本的流量均衡!)
2,NS记录
NS记录和SOA记录是任何一个DNS区域都不可或缺的两条记录,NS记录也叫名称服务器记录,用于说明这个区域有哪些DNS服务器负责解析,SOA记录说明负责解析的DNS服务器中哪一个是主服务器。因此,任何一个DNS区域都不可能缺少这两条记录。NS记录,说明了在这个区域里,有多少个服务器来承担解析的任务
3,SOA记录
NS记录说明了有多台服务器在进行解析,但哪一个才是主服务器呢,NS并没有说明,这个就要看SOA记录了,SOA名叫起始授权机构记录,SOA记录说明了在众多NS记录里那一台才是主要的服务器!
4,MX记录
全称是邮件交换记录,在使用邮件服务器的时候,MX记录是无可或缺的,比如A用户向B用户发送一封邮件,那么他需要向DNS查询B的MX记录,DNS在定位到了B的MX记录后反馈给A用户,然后A用户把邮件投递到B用户的MX记录服务器里!
5,Cname记录
又叫别名记录,我们可以这么理解,我们小的时候都会有一个小名,长大了都是学名,那么正规来说学名的符合公安系统的,那个小名只是我们的一个代名词而已,这也存在一个好处,就是比暴漏自己,比如一个网站a.com 在发布的时候,他可以建立一个别名记录,把B.com发不出去,这样不容易被外在用户所察觉!达到隐藏自己的目的!
6,SRV记录
SRV记录是服务器资源记录的缩写,SRV记录是DNS记录中的新鲜面孔,在RFC2052中才对SRV记录进行了定义,因此很多老版本的DNS服务器并不支持SRV记录。那么SRV记录有什么用呢?SRV记录的作用是说明一个服务器能够提供什么样的服务!SRV记录在微软的Active Directory中有着重要地位,大家知道在NT4时代域和DNS并没有太多关系。但从Win2000开始,域就离不开DNS的帮助了,为什么呢?因为域内的计算机要依赖DNS的SRV记录来定位域控制器!表现形式为:—ldap._tcp.contoso.com 600 IN SRV 0 100 389 NS.contoso.com
ladp: 是一个服务,该标识说明把这台服务器当做响应LDAP请求的服务器
tcp:本服务使用的协议,可以是tcp,也可以是用户数据包协议《udp》
contoso.com:此记录所值的域名
600: 此记录默认生存时间(秒)
IN: 标准DNS Internet类
SRV:将这条记录标识为SRV记录
0: 优先级,如果相同的服务有多条SRV记录,用户会尝试先连接优先级最低的记录
100:负载平衡机制,多条SRV并且优先级也相同,那么用户会先尝试连接权重高的记录
389:此服务使用的端口
NS.contoso.com:提供此服务的主机
7,PTR记录
PTR记录也被称为指针记录,PTR记录是A记录的逆向记录,作用是把IP地址解析为域名。由于我们在前面提到过,DNS的反向区域负责从IP到域名的解析,因此如果要创建PTR记录,必须在反向区域中创建。
以上只是一些简单的介绍,并特别说明了SRV记录的格式,如果掌握了这些为以后的AD管理会有很大的帮助!
4.建立 TCP 连接
TCP 连接通过什么手段来保证数据传输的可靠性,一是三次握手确认连接,二是数据包校验保证数据到达接收方,三是通过四次挥手断开连接。
详细内容:三次握手
5.发送 HTTP 请求
浏览器发 HTTP 请求要携带三样东西:请求行、请求头和请求体。
网络响应:网络响应具有三个部分:响应行、响应头和响应体。
响应完成之后怎么办?TCP 连接就断开了吗?
不一定。这时候要判断Connection字段, 如果请求头或响应头中包含Connection: Keep-Alive,表示建立了持久连接,这样TCP连接会一直保持,之后请求统一站点的资源会复用这个连接。
否则断开TCP连接, 请求-响应流程结束。涉及四次挥手:TCP断开连接 四次挥手
二、输入URL到页面呈现发生了什么?——解析算法篇
6.构建Dom树
由于浏览器无法直接理解HTML字符串,因此将这一系列的字节流转换为一种有意义并且方便操作的数据结构,这种数据结构就是DOM树。DOM树本质上是一个以document为根节点的多叉树。
解析算法:
- 1.标记化。
- 2.建树。
对应的两个过程就是词法分析和语法分析。
标记算法:
这个算法输入为HTML文本,输出为HTML标记,也成为标记生成器。其中运用有限自动状态机来完成。即在当当前状态下,接收一个或多个字符,就会更新到下一个状态。
建树算法:
DOM 树是一个以document为根节点的多叉树。因此解析器首先会创建一个document对象。标记生成器会把每个标记的信息发送给建树器。建树器接收到相应的标记时,会创建对应的 DOM 对象。创建这个DOM对象后会做两件事情:
1.将DOM对象加入 DOM 树中。
2.将对应标记压入存放开放(与闭合标签意思对应)元素的栈中。
7.样式计算
关于CSS样式,它的来源一般是三种:
- link标签引用
- style标签中的样式
- 元素的内嵌style属性
格式化样式表
首先,浏览器是无法直接识别 CSS 样式文本的,因此渲染引擎接收到 CSS 文本之后第一件事情就是将其转化为一个结构化的对象,即styleSheets。
标准化样式属性
有一些 CSS 样式的数值并不容易被渲染引擎所理解,因此需要在计算样式之前将它们标准化,如em->px, red->#ff0000, bold->700等等。
计算每个节点的具体样式
样式已经被格式化和标准化,接下来就可以计算每个节点的具体样式信息了。其实计算的方式也并不复杂,主要就是两个规则: 继承和层叠。
不过值得注意的是,在计算完样式之后,所有的样式值会被挂在到window.computedStyle当中,也就是可以通过JS来获取计算后的样式,非常方便。
8.生成布局树
现在已经生成了DOM树和DOM样式,接下来要做的就是通过浏览器的布局系统确定元素的位置,也就是要生成一棵布局树(Layout Tree)。
布局树生成的大致工作如下:
- 遍历生成的 DOM 树节点,并把他们添加到布局树中。
- 计算布局树节点的坐标位置。
三、说一说从输入URL到页面呈现发生了什么?——渲染过程篇
接下来就来拆解下一个过程——渲染。分为以下几个步骤:
1.建立图层树(Layer Tree)
2.生成绘制列表
3.生成图块并栅格化
4.显示器显示内容