访问网页从输入网址开始

本文概述了浏览器从输入URL到显示页面的详细过程,包括URL解析、HTTP请求、TCP/IP通信、DNS查找、路由选择、服务器响应等步骤,以及可能涉及的CDN、防火墙和服务器内部处理的复杂性。
摘要由CSDN通过智能技术生成

这个主题很早就想写,最近刚好看到相关的视频,就总结一下

参考视频:『面试问答』:浏览器从输入URL到展示页面,经历了哪些过程?

浏览器从输入URL到展示页面的过程,涉及到网络中各种协议的交互和各种设备对报文的转发。

主要流程包括:URL解析、生成HTTP请求、生成TCP报文段、DNS解析域名得到服务器的IP地址、IP路由寻址和生成IP数据报、请求下一跳网关MAC地址、服务器返回响应报文等。

1、浏览器进行URL解析并生成对应的请求

浏览器对URL解析确定要访问的web服务器协议、域名和文件名

http://www.server.com/dir1/file1.html

如上,使用HTTP协议访问www.server.com服务器的dir1目录的file1.html文件

浏览器先查看本地有无缓存,如果有就直接返回,如果没有就生成请求报文

2、传输层生成TCP报文段,准备发起TCP连接

HTTP协议是基于TCP报文,应用层HTTP请求准备完成后,客户端主机开始进行TCP报文段头部的封装。
TCP报文头

3、网络层生成IP数据报

传输层报文段组装好后,开始进行IP数据报的组装。

这一步需要知道服务器的IP地址,所以先要通过DNS进行域名解析。
IP数据报

DNS解析
  • 先检查浏览器DNS缓存
  • 再查host主机文件
  • 最后查DNS服务器
    • 递归查询:DNS服务器替客户端访问上一级域名解析服务器
    • 迭代查询:客户端自己一级一级查询
  • 最终获得服务器的IP地址,确定IP数据报的目的IP
IP路由寻址

传输层TCP处理完后,开始进行网络层IP数据报的处理,特别是对多网卡客户端主机,访问服务端的IP数据报需要确定从哪个网卡发出去,所以需要路由寻址,查找路由表确定报文发出去的网口,从而确定IP数据报的源IP地址,生成IP数据报。

4、数据链路层生成以太网帧

网络层生成IP报文后,下一步需要数据链路层生成以太网二型帧将请求发送出去。
在这里插入图片描述

5、ARP请求下一跳网关的MAC地址

以太网帧头的源MAC就是发送网卡的MAC,目的MAC是路由表中指定的下一跳网关IP对应的MAC。ARP协议使用IP地址获取对应的MAC地址,从而确定以太网帧头的目的MAC

6、报文经过网络到达服务器

整个网络是经过大量的路由器和交换机互联组成的,报文经过这些设备的转发最终到达Web服务器。

7、服务器返回响应报文

服务器收到请求报文后首先检查报文的目的MAC是否是自己网卡的MAC,目的IP是否是自己的IP,然后查看传输层TCP协议的端口是否是Web服务进程监听的端口,然后将请求报文交给Web服务进程处理。

  • 浏览器与服务器经三次握手后建立TCP连接。
  • Web服务进程将请求的网页内容封装成响应报文,然后通过网卡发出去。
  • 响应报文经过网络中的路由器和交换机转发到达客户端主机。
  • 浏览器与服务器经四次挥手后释放TCP连接。
  • 浏览器将请求的网页内容渲染出来。

上面是对于浏览器从输入URL到展示页面,经历了哪些过程的简单总结,但真实情况需要考量的细节远不止于此,如服务器是否配置了CDN服务、服务器防火墙对于报文的处理、服务器中间件的运作、服务器意外断开连接、请求资源需要重定向或需要请求转发等,这些细节共同构建了互联网资源的运作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值