从输入URL到页面展示发生了什么

大体分为以下过程:

1 执行DNS域名解析:根据域名查找ip地址

2 封装HTTP请求包

3 封装TCP请求包

4 建立TCP连接:三次握手

5 参数从客户端传递到服务器端

6 服务器得到参数进行处理并返回响应报文给客户端

7 浏览器解析渲染页面

8 断开连接:四次挥手

较为具体的过程:

1 用户在浏览器输入url地址

2 浏览器解析域名得到服务器ip地址(应用层进行DNS解析)

首先在浏览器缓存查找,若存在就直接取出响应IP地址,
若没有找到,在host文件查找,
若没找到在路由器缓存里查找,
最后到DNS服务器去找,没有到更高一级DNS服务器找,直到找到为止

(DNS服务器查找流程:到DNS服务器找,若找到要解析的地址则向客户端发出应答信息,若没有找到,将请求发送到根域名服务器,再由根域名一级级向下查询,直到找到要解析的地址,再向客户端所在网络发出应答信息,DNS服务器收到应答后先在缓存中存储,然后将解析结果发送给客户机,若没有找到,返回错误信息。)

3 应用层生成HTTP请求报文

生成针对目标Web服务器的请求报文, 包括请求行、首部(请求头)主体(请求正文)

4 传输层建立TCP连接

在发送数据包前,要进行三次握手建立连接保证可靠传输

(syn:同步报文段 ack:确认同步)

第一次握手:客户端---->服务器 (syn=1,seq=x) 客户端进入STN_SEND请求连接状态

第二次握手:服务器---->客户端 (syn=1,ACK=1,seq=y,ACKnum=x+1)服务期进入SYN_REVD(SYN派遣)状态

第三次握手:客户端---->服务器(ACK=1,ACKnum=y+1) 客户端进入ESTABLISED状态,当服务器接收到这个包时也进入ESTABLISHED状态,完成三次握手,进行数据传输

当数据传输完毕后 TCP会进行四次挥手断开连接,过程如下:

第一次挥手:客户端——》服务器(FIN=1seq=u) 客户端状态转变为FIN_WAIT

第二次挥手:服务器——》客户端 (ACK=1,ACKnum=u+1,seq=v) 服务器状态转变为CLOSED_WAIT

第三次挥手:服务器——》客户端 (FIN=1,ACK=1,seq=w,ACKnum=u+1)服务器状态转变为LAST_ACK,等待来自客户端的最后一个ACK

第四次挥手:客户端——》服务器(ACK=1,ACKnum=w+1,seq=u+1) 客户端接受到来自客户端的关闭请求,发送确认包并进入TIME_WAIT状态,此时TCP未释放,等待2MSL(报文最大生存时间) 才会进入CLOSED状态

5 网络层使用IP协议来选择路线

处理来自传输层的数据端segment,将数据段装入数据包,添加源IP地址和目的ip地址,然后发送数据,在数据传输的过程中,ip协议负责选择传送的路线,称为路由功能

6 数据链路层实现网络相邻节点间可靠的数据通信

为保证数据的可靠传输,把数据包封装成帧,并按序传输 ,由于物理线路传输不可靠,为防止在传输过程中出错,于是为每个数据分块计算出CRC,并把crc添加到帧(尾)中,这样接收方就可以通过重新计算crc来判断数据的正确性,一旦出错就重传。帧头主要添加数据链路层的地址,即源MAC地址和目的MAC地址

7 物理层传输数据

数据链路的帧转化成二进制形式·的比特流,从网卡发送出去,在把比特转化成光/电信号在网络中传输

8 服务器处理反向传输

服务器接收到比特流,将比特流转化成帧格式,上传到数据链路层,当发现数据帧的目的MAC地址与本网卡MAC地址相同,服务器拆除数据链路的封装后,将数据包上传到网络层,服务器的网络层比较数据包中的IP地址,发现与本机地址相同,拆除网络层的包装,把数据分段上传到传输层,传输层对数据进行确认,排序,重组,保证数据的可靠性,数据最终上传传到服务器的应用层

9 服务器返回一个 HTTP 响应

由web服务器进行,根据http协议进行解析,并按站报文格式进一步封装成HTTP Request对象,供上层使用

响应报文包括 状态行,响应报头,响应报文

10 浏览器渲染

浏览器的parse模块解析主资源的内容,生成派生资源对应的DOM结构,然后根据派生资源的加载流程创建相应元素

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值