输入URL:[http://www.xxx.com]
1.根据域名,进行DNS解析,拿到IP地址
2.封装数据,三次握手建立TCP连接(传输层)
- 应用层:,构造http报文,发送http请求
- 传输层:TCP传输报文
3.往目的ip地址处发送请求
-
网络层:IP协议查Mac地址
判断目标地址是否与当前地址处于同一网络中(子网掩码运算),是的话直接根据 Mac 地址发送,不是的话通过arp协议在缓存表通过ip找mac,找不到的话会发送询问mac的广播数据报。有了mac之后交换机会通过这个mac找对应端口并转发,路由器接收到这个数据报后会进行分用和封装,(路由器还涉及napt将局域网ip端口映射为公网ip端口)通过路由技术找到离目的ip最近设备的mac。每一次跳转都会更改源mac和目的mac直到到达目的ip.
-
数据链路层:以太网协议
数据链路层,把网络层交下来的IP数据报添加首部和尾部,封装为MAC帧,接收端在收到物理层上交的比特流后,根据首尾的标记,识别帧的开始和结束,将中间的数据部分上交给网络层,然后层层向上传递到应用层。
4.服务器收到请求并处理
服务器接受请求,分用数据报,对HTTP请求进行解析(请求方法、域名、路径等)
5.服务器处理请求
web服务器解析用户请求,知道要调度哪些资源文件,再通过相应的这些资源文件处理用户请求和参数,调用数据库信息,最后将结果通过web服务器返回给浏览器客户端。
6.服务器返回响应报文,(状态码,响应头,响应正文)
7.浏览器收到响应,解析html,css,js等资源,对页面渲染,看是否为长连接,如果是则四次挥手断开TCP连接。