过程概述浏览器
浏览器查找域名对应的 IP 地址;缓存
浏览器根据 IP 地址与服务器创建 socket 链接;服务器
浏览器与服务器通讯: 浏览器请求,服务器处理请求;socket
浏览器与服务器断开链接。tcp
访问服务器须要先知道服务器的ip地址,因此第一步是经过 DNS 把域名解析成一个 IP 地址, DNS 具体的查找过程:(浏览器缓存->系统缓存->路由器缓存)布局
主机向服务器发送一个创建链接的请求;操作系统
服务器接到请求后发送赞成链接的信号;图片
主机接到赞成链接的信号后,再次向服务器发送了确认信号 ;ip
⚠️注意:这里的三次握手中主机两次向服务器发送确认,第二次是为了防止已失效的链接请求报文段传至服务器致使错误。路由
浏览器根据 URL 内容生成 HTTP 请求,请求中包含请求文件的位置、请求文件的方式等等;
服务器接到请求后,会根据 HTTP 请求中的内容来决定如何获取相应的 HTML 文件;
服务器将获得的 HTML 文件发送给浏览器;
在浏览器尚未彻底接收 HTML 文件时便开始渲染、显示网页;
在执行 HTML 中代码时,根据须要,浏览器会继续请求图片、CSS、JavsScript等文件,过程同请求 HTML ;
HTML代码转化为DOM(DOM Tree)
CSS代码转化成CSSOM(CSS Object Model)
结合DOM和CSSOM,生成一棵渲染树(包含每一个节点的视觉信息)(Render Tree)
生成布局(layout),即将全部渲染树的全部节点进行平面合成
布局绘制(paint)在屏幕上
主机向服务器发送一个断开链接的请求;
服务器接到请求后发送确认收到请求的信号;(此时服务器可能还有数据要发送至主机)
服务器向主机发送断开通知;(此时服务器确认没有要向主机发送的数据)
主机接到断开通知后断开链接并反馈一个确认信号,服务器收到确认信号后断开链接;