第一步:咱们会在浏览器地址栏中输入一个url数据库
第二步:浏览器会先查看浏览器缓存
系统缓存 -> 路由器缓存
浏览器
若是缓存中存有先前访问过的数据,则会直接显示在屏幕中;没有的话,则进行第三步操做
第三步:在发送http请求前,须要域名解析(DNS解析)【DNS域名系统】[能够将域名和IP地址相互映射的一个分布式数据库],解析获取相应的IP地址缓存
第四步:浏览器向服务器发起TCP链接,与浏览器创建TCP三次握手。(TCP即传输控制协议。TCP链接是互联网链接协议集的一种)服务器
三次握手:(TCP创建链接的过程,称为三次握手) 第一次,客户端向服务器发送SYN同步报文段,请求创建链接 第二次,服务器确认收到客户端的链接请求,并向客户端发送SYN同步报文,表示要向客户端创建链接 第三次,客户端收到服务器端的确认请求后,处于创建链接状态,向服务器发送确认报文 客户端是在收到确认请求后,先创建链接 服务器是在收到最后客户端的确认后,创建链接 发起链接请求的必定是客户端 注意: 两次握手的话,服务器方不肯定客户端有没有收到报文,中途可能致使报文丢失而服务器不知,客户端可能就会不断发送报文,而服务器处理链接的数量是有限的,此时创建的链接会消耗大量的资源,可能会致使服务器崩溃 有链接就会有断开,那么链接是三次握手,断开就是四次挥手 什么是四次挥手呢? 第一次,A端像B端发送FIN结束报文段,准备关闭链接 第二次,B端确认A端的FIN,表示本身已经收到对方关闭链接的请求中间这段时间,A端中止向B端发送数据,可是B端能够向A端发送数据,要将本身未处理完任务处理完 第三次,B端向A端发送FIN结束报文段,准备关闭链接 第四次,A端确认B端的FIN,进入TIME_WAIT状态,此时A端进程已经退出,可是链接还在 当B端收到A端的ACK以后,先断开链接 当A端等待2 MSL以后,确认的B端接收到ACK后,再断开链接 发起断开链接请求的一端最后要进入有一个TIME_WAIT状态 发起链接请求的能够是客户端也能够是服务器端
第五步:握手成功后,浏览器向服务器发送 http 请求,请求数据包分布式
第六步:服务器处理收到的请求,将数据返回至浏览器网站
第七步:浏览器收到 HTTP 响应url
第八步,读取页面内容,浏览器渲染,解析 HTML 源码code
第九步:生成DOM树,解析CSS样式,js交互进程
第十步:客户端和服务器交互资源
第十一步:Ajax查询