在浏览器中输入域名后,浏览器和服务器都做了哪些事?

1、在浏览器中输入域名后,浏览器和服务器都做了哪些事?

一、网路通信

  • 提取域名浏览器对输入的格式化检查,并确认是什么类型的请求
    a、URL:传输协议、服务器、域名、端口、虚拟目录、文件名、参数、锚
    b、浏览器首先对URL进行识别,抽取出域名字段
  • DNS解析
    a、域名解析,DNS提供通过域名查找IP的服务
    b、再从主机调用目标IP的网站内容
      DNS解析会经过以下步骤
          1、查询浏览器缓存,浏览器会缓存之前拿到的DNS,2-30分钟内
          2、检查系统缓存,检查host文件,这个文件保存了一些以前访问过的网站的域名和IP的数据,就像一个本地的数据库
    在C:\Windows\System32\drivers\etc\hosts文件中,加上xx.xx.xx.xx xxxx.com.cn,就相当于系统缓存中有xxxx.com.cn域名对应的xx.xx.xx.xxip
          3、检查路由器缓存,路由器有自己的DNS缓存
          4、查询ISP DNS缓存,ISP服务商DNS缓存(本地服务器缓存)
          5、递归查询,从根域名服务器到顶级域名服务器再到极限域名服务器依次搜索对应的目标域名的IP
PUT,URL,HTTP1.1
我要查询

HTTP是基于TCP协议的,因此要先建立TCP连接,才能发送HTTP请求


  • TCP建立连接(三次握手)
    TCP是为应用程序提供访问网络的接口,这个接口通过TCP端口提供。所以,必须打开这个接口
    被动打开:某个应用程序进程通知TCP准备通过TCP端口接收连接
    主动打开:程序要求TCP发起与另一台计算机(处于被动打开状态)的接连
    第一次握手:客户端向服务器端发送请求,等待服务器确认【服务器可以确定客户端的发送能力和自己的接收能力正常】
    第二次握手:服务器收到请求并确认,回复一个指令【客户端可以确认自己的发送、接收能力,服务器的发送和接受能力】
    第三次握手:客户端收到服务器的回复指令并返回确认【服务器可以确定客户端的接收能力和自己的发送能力】
浏览器端口:12345 服务器端口:80
PUT,URL,HTTP1.1
我要查询

  • 网络层IP协议
    将源IP地址和目标IP地址加入到数据包中
客户端IP:192.168.123.60 服务器IP:106.114.152.34
浏览器端口:12345 服务器端口:80
PUT,URL,HTTP1.1
我要查询

  • 数据链路层查询MAC地址
    a、如果目标地址与原地址在同一个网段,源计算机就会把数据包直接发送给目标计算机。IP地址会被ARP解析为物理地址,数据被直接发送到目的网络适配器
    b、如果目标地址与源地址不在同一个网段(主机的IP地址与子网掩码做与运算得出网络号)
      1、直接将数据发送到网关,网关是局域网网段上的一个设备,能够把数据转发到其他网段,网关地址被ARP解析为物理地址,数据被发送到网关的网络适配器
    网关往往是一个路由器,是一个三层转发的设备,一个路由器往往有多个网口,连着多个局域网。
      2、数据报通过网关被路由到较高级别的网段,再次重复上述过程,如果目的地址在这个新的网段,数据就被发送到目的地,否则数据报会被发送到另一个网关
      3、数据包经过一系列网关的转发到目的网段,目标IP地址被ARP解析为物理地址,数据被发送到目的网络适配器
客户端MAC:192.168.123.60的MAC 服务器MAC:106.114.152.34的MAC
客户端IP:192.168.123.60 服务器IP:106.114.152.34
浏览器端口:12345 服务器端口:80
PUT,URL,HTTP1.1
我要查询

  • 数据到达数据链路层
    a、网关收到包发现MAC是自己的,取出目标IP地址
    b、再根据路由协议找到下一跳路由器,获取下一跳路由器的MAC地址,将包发送给下一跳路由器
    c、经过路由器一跳一跳到达目标局域网后,最后一跳路由器能够发现目标地址就在自己的某一个出口局域网上,于是,在这个局域网上发送ARP广播,获取目标地址的MAC,将包发送出去。

  • 服务器接收数据
    a、目标及其发现MAC地址符合,就将包收进来,发现IP地址符合,于是根据IP头中协议项,知道自己上一层是TCP协议,于是解析TCP的头里面有序列号,如果看到这个序列号不是自己想要的,就会丢弃
    b、TCP头还有端口号,HTTP的服务器正在监听这个端口号,于是,目标机器知道HTTP服务器的进程想要这个包,于是将包发送给HTTP服务器

  • 服务器响应请求
    HTTP服务器的进程知道这个请求是要访问一个网页,于是就把网页发送给客户端

二、页面渲染

  • 浏览器渲染页面
    客户端拿到服务器端传输来的文件,找到HTML和MIME文件,通过MIME文件,浏览器知道要用页面渲染引擎来处理HTML文件
    a、浏览器会解析HTML源码,然后创建DON树
    b、浏览器解析CSS代码,计算最终样式数据,形成CSS对象模型CSSOM
    c、利用DOM和CSSDOM构建一个渲染树
    d、浏览器根据渲染树直接把页面绘制到屏幕上
  • TCP断开连接(四次挥手)
    因为TCP是全双工的,因此每个方向上都必须单独进行关闭
    第一次挥手:客户端发送FIN,用来关闭到服务器的数据传送
    第二次挥手:服务器收到FIN后,发送一个ACK表示收到
    第三次挥手:服务器发送FIN,关闭与客户端的连接
    第四次挥手:客户端发回ACK表示确认
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值