一、浏览器输入www.baidu.com
1.DNS域名解析,为何解析?因为网络标准规定url只能是字母和数字和其他特殊符号需要转义,不转义会出现歧义。DNS解析过程:首先会向浏览器查询有无缓存,无的话就走本地DNS服务器,再无就走根DNS服务器,然后判断出.com,找到.com这个顶级域名服务器,并把对应的ip列表发给本地DNS服务器,本地DNS服务器再次向顶级域名服务器去查询,顶级DNS服务器经过几次从权威DNS服务器查找,找到了baidu的ip地址,之后本地dns服务器直接向该权威DNS服务器发送查询报文,获得对应的ip地址。
2.找到IP后 进行TCP三次握手,
3.发起HTTP请求,请求会被进行编码,生成一个HTTP数据包,依次打上TCP、IP和以太网协议的头部。其中TCP头部主要是本地端口号和目标端口号,打上服务端目的端口号80,本地的话是随机的端口号(1024~65535),IP头部包含本地IP和目的IP,以太网协议头部主要是源MAC和目的MAC,目的MAC可通过ARP协议获得(若本地IP和目的IP的子网掩码相同,则通过APR直接查到目标主机的MAC地址,否则是下一跳网关的MAC地址),找到后通过ARQ响应返回给源主机目的主机的MAC地址。
4.服务器获取到HTTP请求后会根据HTTP请求的内容来决定如何获取相应的文件,并将文件发送给浏览器
5.浏览器根据响应开始解析页面。首先解析HTML文件构成DOM树,再解析CSS构建渲染树,构建完成后开始布局渲染树,并绘制到屏幕上
6.断开连接,四次挥手