三次握手:
客户端向服务器发送连接请求
服务器确认收到连接请求,并且向客户端发送连接请求
客户端确认收到服务器连接请求,建立连接。
四次挥手:
当甲方发出断开连接请求,乙方确认收到请求后,可能乙方还有数据没有给甲方,所以乙方不能立即断开连接,只有等到乙方把所有的事情处理完后,才能给甲方发送一个可以断开连接的请求
甲方发出断开连接请求
乙方确认收到请求
乙方发送断开连接请求
甲方确认收到请求
从输入一个网址到浏览器显示页面经历的过程
输入网址后,浏览器进行解析,首先会查看浏览器缓存,如果缓存中存在,直接显示页面内容,
若不存在,则进行DNS解析,得到ip地址
然后建立TCP连接(三次握手)
向服务器发送HTTP请求(请求行、请求头、请求体)
服务器接收请求并进行响应
浏览器接收到响应的资源后进行解析、渲染 (生成DOM树、解析CSS样式,js交互)
断开连接(四次挥手)
浏览器的渲染机制
接收到服务器响应的资源后,通过解析器将HTML文件解析成一个DOM树
将CSS文件解析后构建一个CSS规则树
根据DOM和CSSOM来绘制Render Tree(渲染树)
在渲染树的基础上计算每个元素的尺寸、位置--layout
将每个元素绘制到屏幕上--painting
简单总结一下什么是HTTP协议
HTTP(HyperText Transfer Protocol超文本传输协议)是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。
HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。
HTTP协议的特点
HTTP协议是无状态的,即多次访问一个服务器上的页面,服务器并不知道你曾经访问过,每次访问的响应都当做第一次访问一样。
HTTP有非持久连接和持久连接:
采用非持久连接时,网页的每个元素对象(如.png,jpeg图等)的传输都需单独建立一个TCP连接(第三次握手可携带请求信息)
采用持久连接时,仅需建立一次TCP连接,服务器发送响应后仍保持连接,客户和服务器可以继续在这条连接上发送请求和响应报文。