当你请求www.baidu.com时都发生了什么?

一次完整的HTTP服务过程(渐进式) 题意分析 当我们在web浏览器的地址栏中输入: www.baidu.com, 具体发生了什么? 简述流程 对 www.baidu.com这个网址进行DNS域名解析,得到对应的IP地址 根据这个IP,找到对应的服务器,发起TCP的三次握手 建立TCP连接后发起HTTP请求 服务器响应HTTP请求,浏览器得到html代码 浏览器解析html代码,并请求html代码中的资源(如js、css、图片等) (先得到html代码,才能去找这些资源) 浏览器对页面进行渲染呈现给用户 服务器关闭TCP连接 进一步理解: 阅读详情

目录

一、目录             

二、Hi All             

三、同一个局域网中不同主机的互联             

四、跨网段请求百度的服务器             

五、百度的响应包如何再打回到你的机器?      

二、Hi All

这一次,让 我在 百度告诉你,当你请求www.baidu.com时都发生了什么?以及数据包经历了怎样的过程才被转发到百度的IDC机房的、以及你的电脑又是如何接收到百度的返回的数据包的!

这篇文章会串讲:IPv4、MAC、DNS、交换机、ARP、路由器、路由表、NAT、NAPT、私网、公网、OSI7层网络模型、以及不同机器互联互通原理等计算机网络知识点。

好,我们开始吧!

三、同一个局域网中不同主机的互联

先看个简单的,同一个局域网中的不同主机A、B之间是如何互联交换数据的。如下图:

那,既然是同一个局域网中,说明A、B的ip地址在同一个网段,如上图就假设它们都在 192.168.1.0 网段。

还得再看下面这张OSI 7层网络模型图。

主机A向主机B发送数据,对主机A来说数据会从最上层的应用层一路往下层传递。比如应用层使用的http协议、传输层使用的TCP协议,那数据在往下层传递的过程中,会根据该层的协议添加上不同的协议头等信息。

图片来自网络

根据OSI7层网络模型的设定,对于接受数据的主机B来说,它会接收到很多数据包!这些数据包会从最下层的物理层依次往上层传递,依次根据每一层的网络协议进行拆包。一直到应用层取出主机A发送给他的数据。

那么问题来了,主机B怎么判断它收到的数据包是否是发送给自己的呢?万一有人发错了呢?

答案是:根据MAC地址,逻辑如下。

if 收到的数据包.MAC地址 == 自己的MAC地址{
  // 接收数据
  // 处理数据包
}else{
 // 丢弃
}

那对于主机A来说,它想发送给主机B数据包,还不能让主机B把这个数据包扔掉,它只能中规中矩的按以太网网络协议要求封装将要发送出去的数据包,往下传递到数据链路层(这一层传输的数据要求,必须要有目标mac地址,因为数据链路层是基于mac地址做数据传输的)。

那数据包中都需要哪些字段呢?如下:

src ip = 192.168.1.2  //源ip地址,交换机
dst ip = 192.168.1.3  //目标ip地址
//本机的mac地址(保证从主机B回来的包正常送达主机A,且主机A能正常处理它)
src mac = 主机A的mac地址
dst mac = 主机B的mac地址//目标mac地址

其中的 dst ip 好说,我们可以直接固定写,或者通过DNS解析域名得到目标ip。

那 dst mac 怎么获取呢?

这就不得不说 ARP 协议了! ARP 其实是一种地址解析协议,它的作用就是:以目标ip为线索,找到目的ip所在机器的mac地址。也就是帮我们找到 dst mac 地址!大概的过程如下几个step:

简述这个过程:主机A想给主机B发包,那需要知道主机B的mac地址。

  1. 主机A查询本地的arp 高速缓存中是否已经存在 dst ip 和 dst mac 地址的映射关系了,如果已存在,那就直接用。

  2. 本地arp高速缓存中不存在 dst ip 和 dst mac 地址的映射关系的话那就只能广播arp请求包,同一网段的所有机器都能收到arp请求包。

  3. src ip
    src ip
    src mac
    

补充:

交换机本身也有学习能力,他会记录mac地址和交换机端口的映射关系。比如:mac=a,端口为1。

那当它接收到数据包,并发现mac=a时,它会直接将数据扔向端口1。

当然,也可以看下维基百科中列举的同局域网中两台computer互联的简单例子:

图片来自维基百科

再看下linux操作系统中的arp命令:

# 发送一个arp广播,如下:

~]# arp -a
gateway (192.168.0.1) at fa:16:3e:66:c8:15 [ether] on eth0
? (192.168.0.254) at fa:fa:fa:fa:fa:01 [ether] on eth0

# 可以看到网关ip地址:192.168.0.1,mac地址是:fa:16:3e:66:c8:15 网卡是eth0
# 广播地址:192.168.0.254,mac地址是:fa:fa:fa:fa:fa:01 网卡是eth0

嗯,在arp协议的帮助下,主机A顺利拿到了主机B的mac地址。于是数据包从网络层流转到数据链路层时已经被封装成了下面的样子:

src ip = 192.168.1.2
src mac = 主机A的mac地址
dst ip = 192.168.1.3
dst mac = 主机B的mac地址

网络层基于ip地址做数据做转发

数据链路基于mac地址做数据转发

根据OIS7层网络模型,我们都知道数据包经过物理层发送到机器B,机器B接收到数据包后,再将数据包向上流转,拆包。流转到主机B的数据链路层。

那主机B是如何判断这个在数据链路层的包是否是发给自己的呢?答案前面说了,根据目的mac地址判断。

// 主机B
if 收到的数据包.MAC地址 == 自己的MAC地址{
  if dst ip == 本机ip{
    // 本地处理数据包
  }else{
    // 查询路由表,根据路由表的规则,将数据包转某个某卡、或者默认网关
  }
}else{
 // 直接丢弃
}

这个例子比较简单, dst ip 就是 主机B的本机ip 所以它自己会处理这个数据包。

那数据包处理完之后是需要给主机A一个响应包,那问题又来了,响应包该封装成什么样子呢?对主机B来说响应包也需要 src ip 、 src mac 、 dst ip 、 dst mac

src ip = 192.168.1.3
src mac = 主机B的mac地址
dst ip = 192.168.1.2
src mac = 主机A的mac地址 (之前通过arp记录在自己的arp高速缓存中了,所以,这次直接用)

同样的道理,响应包也会按照如下的逻辑被主机A接受,处理。

// 主机A
if 收到的数据包.MAC地址 == 自己的MAC地址{
  if dst ip == 本机ip{
    // 本地处理数据包
  }else{
    // 查询路由表,根据路由表的规则,将数据包转某个某卡、或者默认网关
  }
}else{
 // 直接丢弃
}

然后再补充一点,我们可以通过下面的命令查看路由转发是否开启:

 ~]# cat /proc/sys/net/ipv4/ip_forward
1

嗯,同一个局域网中的不同主机的通信方式大概就是这样子。下面我们再来看一下跨网段的不同主机的互联原理。

四、跨网段请求百度的服务器

通过上面的描述,如下这张图描述同一个局域网内的不同主机 192.168.1.3 和 192.168.1.2 互联的原理大家已经很清楚了。

那不同网段的主机之间是如何互联的呢?

或者说,当你访问:www.baidu.com 时,都发生了什么?你的请求是如何打到百度的服务器机房里面去的?

那,我们先尝试ping一下百度,如下,可以看到百度服务对外暴露的ip地址是 220.181.38.148

~ % ping baidu.com
PING baidu.com (220.181.38.148): 56 data bytes
64 bytes from 220.181.38.148: icmp_seq=0 ttl=48 time=38.812 ms
64 bytes from 220.181.38.148: icmp_seq=1 ttl=48 time=38.944 ms
64 bytes from 220.181.38.148: icmp_seq=2 ttl=48 time=23.507 ms
64 bytes from 220.181.38.148: icmp_seq=3 ttl=48 time=33.429 ms
^C
--- baidu.com ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 23.507/33.673/38.944/6.277 ms

那,再通过 ifconfig 命令看下我的本机ip地址是 192.168.0.64

像这种192.168.xx.xx这种局域网机器的ip通常使用dhcp动态分配

我们也可以设置手动设置静态ip

比如可以通过如下命令设置eth0网卡信息

vi /etc/sysconfig/network-scripts/ifcfg-eth0

那,另外我的机器还有运营商分配的公网ip地址: 121.36.30.75

有了上面这些信息,于是我们就能画出下面这张图:

然后我们再看一下当我们使用 192.168.0.64 访问百度时,数据包是如何被一层层转发到百度的IDC机房的,然后我电脑又是如何处理百度的回包的!

对我的机器来说,我想访问百度的服务器,也就是往百度的服务器发数据包的话,那我的电脑得先封装好数据包吧!

那数据包里面起码要包含哪些信息呢?其实在上面的第一节中我们已经说过了,也就是 src ip 、 src mac 、 dst ip 、 dst mac

对于我的电脑来说:

src ip = 192.168.0.64
src mac = fa:16:3e:6b:ab:64 (本机mac地址)
dst ip = 220.181.38.251 (通过DNS服务解析www.baidu.com获取到)
dst mac = ???

那 dst mac 目的mac地址是多少呢?这是个问题!

因为我是 192.168.0.X 网段,百度的服务器在 220.181.38.X 网段,我们都不在一个网段中!我的机器没法直接获取到百度对外暴露的网关的mac地址。

那怎么我的机器怎么办呢?

答案是:我的机器会先查看一下自己的路由表,路由表会记录该将这个数据包转发到哪里去。具体可通过 route -n 命令可以查看到,如下:

具体的做法就是,拿着 dst ip 220.181.38.251 ,分别和路由表中的Genmask做与操作,ip地址 与 子网掩码可以得到该ip地址所在的网段,那得到了 dst ip 所在的网段之后呢,就拿着这个网段和路由表中的 Destination 对比,如果相同的话,就将数据包准发给他。

在我们这个例子中,很明显 dst ip 220.181.38.251 跟后三条路由相与得到的结果和route表期望的 Destination 都不匹配。

但是 dst ip 220.181.38.251 跟第一条路由表中的记录相与,得到的结果肯定符合route预期的 Destination ,毕竟谁与0,结果都是0嘛。(它的Flags为UG,表示它就是网关,也就是网络的出口)

找到了符合预期的路由后,我的机器就会先将数据包发送给网关,对应的网卡就是 eth0 ,那这也就意味着我们找到了第一个跳目的ethernet地址。于是数据包被封装成下面这样

src ip = 192.168.0.64
src mac = fa:16:3e:6b:ab:64 (本机mac地址)
dst ip = 220.181.38.251 (通过DNS服务解析www.baidu.com获取到)
dst mac = eth0网卡的mac地址。(ip地址是:192.168.0.1)

同样的道理,当eth0网卡收到这个数据包后,路由器进行如下的判断。

if 数据包.mac == 自己的mac{
 // mac地址相同,说明这是发送给自己的包,所以它不会丢弃。
 if 数据包.ip == 自己的ip{
  // 说明这就是发给他的数据包,但是它只是一个路由器,只有OSI7层网络中的前三层。所以他的将数据包发给其他设备 
 }else{
  // 继续查看自己的路由表,找到合适的下一跳地址(扔给网关)。
 }
}else{
 // 直接丢弃
}

经过上面伪代码的判断,eth0知道了这个包虽然是发给它的,但它并不能继续处理这个数据包,他需要将这个数据包准发给下一跳。

对它现在来说:

src ip = 192.168.0.1 (上图LAN口的ip地址)
src mac = eth0的mac地址,
dst ip = 220.181.38.251
dst mac = ???

那 dst mac 地址怎么获取到呢?其实和上面的流程类似,需要查询路由表。使用 src ip 和路由表中的子网掩码相与,得到网段后再与 Desitantion 对比。由于这个路由器上确实没有连接 220.180.38.xxx 的网段,所以数据包最终依然会被转发到这个路由器的公网网关。

经过这一步,数据包流转到路由器的WAN口,再往下走就流入公网啦!

数据包在公网中各个路由节点之间跳转,最终会流转到百度对外暴露的网关路由器的公网WAN口。

然后数据包会从这个WAN口流入百度内网的IDC机房集群。

你可能会问:那这次请求会打向百度IDC机房中的那台机器呢?

嗯,这就没法再展开了,百度肯定会有他自己的负载均衡机制。我们只需知道这个数据包最终肯定会流转到某一台具体的物理器、或者是某个容器内就好啦!

五、百度的响应包如何再打回到你的机器?

这就要讲到NAT技术了,看下面的这张图:

数据包传输出去的过程中,虽然 dst ip 始终都是百度对外暴露公网网关的ip地址,但是 src ip 却一直不断的被改变。从一开始的 192.168.0.64 => 192.168.0.1 => 121.36.30.75

---------------我的机器------------
=> src ip = 192.168.0.64 ....   
---------------我的机器------------

---------------路由器----------------
然后=> src ip = 192.168.0.1 .... (路由器的LAN口)
然后=> src ip = 121.36.30.75 ....(路由器的WAN口)
---------------路由器----------------

在数据包在被发送到公网之前会被路由器做一次 SNAT 处理,全称是: source network address translator 源网络地址转换,它的目的就是将私网ip转换成路由器的公网ip。

当然了,路由器也都会记录下 SNAT 转换前和转换后的状态。毕竟如果不出意外话,路由器总能接受到百度给他的回包,但他是不能解析处理这个数据包的。(只有请求的发送者 192.168.0.64 这台机器的应用层才能正确解析出这个响应包)。所以路由器需要根据转发记录将这个包转发给我们起初发送请求的机器(也就是 192.168.0.64 )。

而这些记录会被路由器记录在它的地址转换表中。

如下:

看上图中绿色的部分,在地址转换表中记录,数据包的原地址从 192.168.0.64:1234 被转成了 121.36.30.75:1234 。(这种带端口号的地址转换其实叫 NAPT )

那我们继续往下看,假如我们的路由器收到百度的响应包长下面这样:

src ip = 220.181.38.251 (百度公网网关路由器WAN口ip地址)
src mac = 百度公网网关路由器的mac地址
dst ip = 121.36.30.75:1234 (我们家里路由器的WAN口ip地址)
dst mac = 我们家里路由器的mac地址

同样的道理,我们家里路由器会有下面伪代码的判断逻辑。

if 响应包.mac == 自己的mac{
 // 说明这是发给自己包,所以不能丢弃
  if 响应包.ip == 自己的ip{
    // 哎?ip也是自己的ip!
    // 但是它只是一个路由器,只有OSI7层网络模型的前三层
    // 所以路由器并不能真正的处理解析这个数据包,只能根据NAT表继续转发
    if 地址转换表.Contains(响应包.dstIp){
      // 通过查地址转换表发现:
      // dst ip = 121.36.30.75:1234 的流量,需要转给:192.168.0.64:1234
      // 转发...
    }  
  }else{
    // 查自己的route表,找下一跳
  }
}else{
 // 直接丢弃
}

这样的话,我们的发送请求的机器就接收到百度的响应包了,响应数据再一路往OIS7层网络模型的上层传递,最后到应用层根据http协议解析出响应报文,经过浏览器渲染html报文,于是下面的网页就展现在了我们面前!

访问百度时网络的交互过程 访问百度的过程、DNS解析、arp、TCP三次握手、tcp四次挥手。 阅读详情

相关推荐

浏览器,输入www.baidu.com,回车,到百度页面出现。中间发生了什么?

浏览器,输入 www.baidu.com,回车,到百度页面出现。中间发生了什么? 粗略的讲,进行了以下六步 DNS 解析:将域名解析成 IP 地址 TCP 连接:TCP 三次握手 发送 HTTP 请求 服务器处理请求并返回 HTTP 报文 浏览器解析渲染页面 断开连接:TCP 四次挥手 讲之前先了解一下什么是url url URL(Uniform Resource Locator),统一资源定位符,用于定位互联网上资源,俗称网址。 scheme://host.domain:port/path/fil

ikta的博客 6190

网络基础

网络基础 网络基础 Internet 美国arpnet阿帕网 里程TCP/IP协议的诞生(分层协议) OSI(分层模型)分成七层 下三层运维做 上三层开发做 应用层 (应用程序)QQ 表示层 (数据的表示方式,文本,图片,加密,压缩等)数据 会话层 (会话建立,维护)session 传输层 (提供端到端的服务,tcp/udp)TCP(连接建立维护过程 电话)UDP(无连接,应用一般使用这个协...

weixin_43254438的博客 537

深度剖析浏览器请求行为, 输入www.baidu.com 回车后,背后发生了什么?

本文旨在分析浏览器从发送请求到页面加载渲染整个背后系统执行过程,其中关于后台的运行过程细节进行了隐藏。

Smarts 1655

813-当你请求www.baidu.com时都发生了什么?

当你请求www.baidu.com时都发生了什么? 同一个局域网中不同主机的互联 先看个简单的,同一个局域网中的不同主机A、B之间是如何互联交换数据的。如下图: 那,既然是同一个局域网中,说明A、B的ip地址在同一个网段,如上图就假设它们都在192.168.1.0网段。 还得再看下面这张OSI 7层网络模型图。 主机A向主机B发送数据,对主机A来说数据会从最上层的应用层一路往下层传递。比如应用层使用的http协议、传输层使用的TCP协议,那数据在往下层传递的过程中,会根据该层的协议添加上不同的协议头等信息

LINZEYU666的博客 6144

线程交替打印

线程交替打印

sowhat 1213

Polars简明基础教程一:Polars快速入门

在这个例子中,我们将添加一个列,其中包含每个舱位中乘客的最大年龄。在Python中(而不是特指Polars),当我们将代码包裹在括号中时,我们可以在新行上调用一个新方法——在这种情况下是select。在这里,我们看到一个使用表达式API的简单示例,其中我们在select语句中选择Pclass、Name和Age列(我们将在第3节中深入了解select语句)。表达式是一个函数,它接受一个Series(或DataFrame中的列)作为输入,并返回一个Series(或DataFrame中的列)。

sosogod的博客 3881

访问百度的过程详解

访问百度过程

qq_51577576的博客 9447

ADS1293心电图模块实战:从电极贴片到信号采集的全流程指南

本文提供了一份基于TI ADS1293芯片的心电图采集系统全流程实战指南。文章深入探讨了从电极贴片选择与皮肤预处理、ADS1293前端配置(包括PGA、RLD和威尔逊网络),到PCB布局、电源去耦以及固件滤波与运动伪影处理等关键环节,旨在帮助硬件工程师和嵌入式开发者构建稳定可靠的可穿戴心电监测设备。

weixin_29201313的博客 387

这一次,让我在​百度告诉你,当你请求www.baidu.com时都发生了什么?

这一次,让我在百度告诉你,当你请求www.baidu.com时都发生了什么?以及数据包经历了怎样的过程才被转发到百度的IDC机房的、以及你的电脑又是如何接收到百度的返回的数据包的! 这篇文章会串讲:IPv4、MAC、DNS、交换机、ARP、路由器、路由表、NAT、NAPT、私网、公网、OSI7层网络模型、以及不同机器互联互通原理等计算机网络知识点。 好,我们开始吧!

2401_83384536的博客 914

从零搭建openEuler ARM64开发测试环境:手把手教你用libvirt+KVM配置虚拟机(含VNC远程安装)

本文详细介绍了如何在ARM64平台上从零搭建openEuler开发测试环境,涵盖libvirt和KVM配置虚拟机的完整流程,包括环境准备、存储配置、网络优化、XML配置详解以及VNC远程安装。特别针对华为欧拉(openEuler)系统进行了优化,帮助开发者快速构建高效的ARM架构虚拟化环境。

weixin_30545945的博客 587

5、Visual Studio Code:强大的编码与文件管理功能

本文详细介绍了 Visual Studio Code 的强大编码与文件管理功能,涵盖代码导航、引用查找、符号重命名、实时代码分析、IntelliCode 提示、文件和文件夹操作等内容。通过功能对比、流程图和实际开发案例,展示了 VS Code 如何提升开发效率和代码质量,适用于各类编程语言和项目开发场景。

water的专栏 134

一次完整的HTTP服务过程是什么

当我们在web浏览器的地址栏中输入:www.baidu.com,具体发生了什么? 对www.baidu.com这个网址进行DNS域名解析,得到对应的IP地址 根据这个IP,找到对应的服务器,发起TCP的三次握手 建立TCP连接后, 发起HTTP请求 服务器响应HTTP请求,浏览器得到html代码 浏览器解析html代码,并请求html代码中的资源(如js、css、图片等)(先得到html代码,才能去找这些资源) 浏览器对页面进行渲染呈现给用户 服务过程完毕, 关闭TCP连接, 四次挥手 注: 1.DNS

接着奏乐接着舞的博客 2985

【AN7581】AN7581 SDK编译环境搭建操作说明

安装编译需要的工具包。

wgl307293845的博客 338

浏览器输入www.baidu.com之后发生了什么

经典面试题:浏览器输入www.baidu.com之后,按下回车键之后会发生什么?

m0_51380540的博客 8799

4、硬件工程师笔试面试知识器件篇——电阻(2025版本)

本文系统介绍了电阻的基础知识与应用。首先阐述了电阻的定义、工作原理及类型(固定/可变电阻),详细说明了常见电阻材料(碳膜、金属膜、线绕等)的特性与标记方法。重点分析了电阻在电路设计中的关键参数:功率计算需考虑1.5-2倍安全裕度,温度系数影响电路稳定性。文章还对比了不同封装形式(轴向/贴片/功率封装等)的适用场景,特别强调高功率电路需选择专用封装并做好散热设计。最后指出电路仿真可优化电阻选择,并列举了相关电子元件在设计中同样需要仿真验证。全文为硬件工程师提供了电阻选型的实用指导。

XU157303764的博客 5213

【系统架构设计师】2026年上半年真题论文:论高并发系统的设计与实践

本文围绕高并发系统架构设计展开,重点论述了电商秒杀系统的实战经验。文章采用"痛点-解决方案-效果"的逻辑结构,从缓存设计、异步处理、限流降级、数据库优化等6个维度详细阐述了应对高并发的技术策略。其中,重点介绍了多级缓存体系、基于消息队列的异步处理机制和微服务拆分实践,并辅以实际案例说明如何解决超卖、缓存雪崩等典型问题。全文强调高并发设计需要系统性思维,通过空间换时间、异步换吞吐、横向换能力等原则,最终实现系统吞吐量从500TPS提升至20000TPS的性能突破。

数据知道的博客 1160

浏览器输入www.baidu.com之后,发生了什么?

1、将域名www.baidu.com解析为IP地址: 解析IP地址的过程依次经过了:浏览器缓存、系统缓存、hosts文件、路由器缓存、递归搜索根域名服务器。 浏览器缓存: 每个浏览器都会有一个DNS缓存,记录了一些常用域名和IP地址的对应关系(有过期时间),当在浏览器的DNS缓存中没有找到对应关系时,会查询系统缓存。 系统缓存: 浏览器会进行一个系统调用(Windows里面是gethostbyname),检查本机的C:\Windows\System32\drivers\etc\hosts配置文件下有

weixin_44140339的博客 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

浏览器中输入www.baidu.com后发生了什么

一道经典的面试题:你输入网址后到页面显示出来,中间发生了什么? 第一步 浏览器查找该域名的 IP 地址 第二步 浏览器根据解析得到的IP地址向 web 服务器发送一个 HTTP 请求 第三步 服务器收到请求并进行处理 第四步 服务器返回一个响应 第五步 浏览器对该响应进行解码,渲染显示。 第六步 页面显示完成后,浏览器发送异步请求。 下面对每个环节做进一步分析: 第一步 浏览器查找该域...

weixin_42054244的博客 6880

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

从浏览器输入http://www.baidu.com,到看到百度主页的过程中到底发生了什么?

从浏览器输入http://www.baidu.com,到看到百度主页的过程中到底发生了什么? 网络模型 1. 根据网络七层模型,浏览器和服务器都可以认为是应用层的一个应用, 2. 所以本质上来说就是从一个应用层到另外一个应用层的过程,在我们这个过程中主要采用的http协议进行通信 HTTP协议(简单介绍) HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范 1. http的请求规范: 请求行(请求类型,欲访问资源,协议版本)

qq_34348049的博客 5321

输入www.baidu.com后发生的事情

我们假设您想要访问 www.baidu.com 查找一些你所需要的东西。 您将 www.baidu.com 键入浏览器的地址栏。 浏览器检查缓存中的DNS记录,以查找 www.baidu.com 的相应IP地址。 DNS(域名系统)是一个数据库,用于维护网站名称(URL)及其链接的特定IP地址。互联网上的每个URL都有一个唯一的IP地址。IP地址属于托管我们请求访问的网站的服务器的计算机。例如,...

Lee's site 3万+

面试官:浏览器请求 www.baidu.com 时,背后都干了些啥?

1、面试题用浏览器请求一个链接的时候,经历了哪些过程(DNS解析过程)?2、面试官心里分析这个问题,其实就是跟之前的那个一样,他就是考察考察你的基本功,看你对基本的网络通信知识有没有了解。...

weixin_31351409的博客 723

在浏览器中输入URL(如www.baidu.com)会发生什么,用到了哪些协议

浏览器中输入URL 浏览器要将URL解析为IP地址,解析域名就要用到DNS协议,首先主机会查询DNS的缓存,如果没有就给本地DNS发送查询请求。DNS查询分为两种方式,一种是递归查询,一种是迭代查询。如果是迭代查询,本地的DNS服务器,向根域名服务器发送查询请求,根域名服务器告知该域名的一级域名服务器,然后本地服务器给该一级域名服务器发送查询请求,然后依次类推直到查询到该域名的IP地址。DNS服...

ypshowm的博客 1万+

【网络原理】详解访问域名 www.baidu.com 中的DNS解析过程

上节我们学习了【图解TCP_IP读书笔记】第五章:DNS,在这里详细谈一下:访问 www.baidu.com 这个域名,来看一看当你访问 www.baidu.com 时,会发生哪些事。 先查找本地 DNS 缓存(自己的电脑上),有则返回,没有则进入下一步 查看本地 hosts 文件有没有相应的映射记录,有则返回,没有则进入下一步 向本地 DNS服务器(一般都是你的网络接入服务器商提供,比如中国电信,中国移动)发送请求进行查询,本地DNS服务器收到请求后,会先查下自己的缓存记录,如果查到了直接返回就结束了,

Josvin 6499

当输入 https://www.baidu.com 时,返回页面的过程中发生了什么?

浏览器向 DNS 服务器发送 itheima.com 域名解析请求; DNS 服务器返回解析后的 ip 给客户端浏览器,浏览器想该 ip 发送页面请求; DNS 服务器接收到请求后,查询该页面,并将页面发送给客户端浏览器; 客户端浏览器接收到页面后,解析页面中的引用,并再次向服务器发送引用资源请求; 服务器接收到资源请求后,查找并返回资源给客户端; 客户端浏览器接收到资源后,渲染,输出页面展现给用户. ...

晨晨渝奇的博客 6735
上一篇: 深度剖析: RocketMQ 在存储架构上的极致追求
下一篇: MySQL innodb是如何存数据的?
JavaShark
博客等级 码龄4年 184粉丝 438原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值