关于浏览器和http协议
一、从输入一个网址到浏览器显示页面经历的过程:
1>DNS解析得到ip地址
DNS是一个域名系统,里面存储着域名和IP的对应关系,然后根据域名找到对应的IP地址
2>根据IP地址访问对应的服务器
得到对应的IP地址后找到对应的服务器
3>建立tcp连接(三次握手)
请求之前需要建立连接
三次握手:(1)客户端向服务器发送请求
(2)服务器确认收到请求并作出回应
(2)客户端确认服务器得到请求,建立连接
4>向服务器发送http请求
建立连接后才能向服务器发送请求,请求需要规则,这个规则就是http规则
5>服务器的到请求后整合资源,做出http响应
6>浏览器得到响应的资源后进行解析与渲染
7>断开连接(四次挥手)
注:整个过程相当于一个事务,前面的事件未执行或执行中断,后面的事件不能执行
四次挥手:(1) 甲方向乙方发出断开连接请求
(2)乙方确认收到
(3)乙方发送断开连接
(4)甲方确认收到
之所以收到请求后再断开是因为乙方收到请求后可能还有数据没有发送给甲方,所以不能马上断开连接,需要等到乙方处理好剩余的事件才向甲方发送断开连接
二、浏览器的渲染机制
浏览器开一个选项卡,就是一个进程(操作系统分配和调度资源的基本单位),操作系统给这个进程分配和调度资源(CPU和内存)。
进程中有多个线程,先记住两个,js线程和ui线程,这两个线程互斥,对于html和css就是ui线程处理,对于js就是js线程处理。
ui线程把html构建成DOM树,把css构建成css规则树,两棵树合并构成渲染树,然后渲染页面
三、简述http协议
HyperText Transfer Protocol的缩写
http协议基于TCP协议,是请求-响应协议,工作在应用层,它指定了客户端可能向服务器发送什么样的消息以及得到的请求
TCP与UDP协议:
TCP协议 安全,可靠,耗时
UDP协议 不安全,不可靠,速度快,工作在传输层