首页 > 试题广场 >

在浏览器中输入www.baidu.com后执行的全部过程

[问答题]
在浏览器中输入www.baidu.com后执行的全部过程

事件顺序

(1) 浏览器获取输入的域名www.baidu.com

(2) 浏览器向DNS请求解析www.baidu.com的IP地址

(3) 域名系统DNS解析出百度服务器的IP地址

(4) 浏览器与该服务器建立TCP连接(默认端口号80)

(5) 浏览器发出HTTP请求,请求百度首页

(6) 服务器通过HTTP响应把首页文件发送给浏览器

(7) TCP连接释放

(8) 浏览器将首页文件进行解析,并将Web页显示给用户。

涉及到的协议

(1) 应用层:HTTP(WWW访问协议),DNS(域名解析服务)

(2) 传输层:TCP(为HTTP提供可靠的数据传输),UDP(DNS使用UDP传输)

(3) 网络层:IP(IP数据数据包传输和路由选择),ICMP(提供网络传输过程中的差错检测),ARP(将本机的默认网关IP地址映射成物理MAC地址)

发表于 2017-03-28 15:30:18 回复(2)
主要考察五层协议栈的理解
1、应用层:DNS解析域名为目的IP,通过IP找到服务器路径,客户端向服务器发起HTTP会话,然后通过运输层TCP协议封装数据包,在TCP协议基础上进行传输
2、运输层:HTTP会话会被分成报文段,添加源、目的端口;TCP协议进行主要工作
3、网络层:为数据包选择路由,IP协议进行主要工作
4、数据链路层:相邻结点的可靠传输,ARP协议将IP地址转成MAC地址。
编辑于 2017-02-23 15:25:21 回复(0)
我还是想发知乎的这个链接,谁看谁知道😂 https://www.zhihu.com/question/34873227/answer/518086565
发表于 2019-03-05 10:39:55 回复(1)
http://www.cnblogs.com/rollenholt/archive/2012/03/23/2414345.html

http://blog.csdn.net/wdzxl198/article/details/11265475
编辑于 2016-03-01 11:26:58 回复(1)
zll头像 zll
1.客户端浏览器通过DNS解析到www.baidu.com的IP地址为220.181.0.1,通过这个ip地址找到客户端到服务器的路径,客户端浏览器发起一个http会话到220.181.0.1,然后通过TCP进行封装数据包,输入到网络层。
2.在客户端的传输层,把HTTP会话请求分成报文段,添加源和目的端口,如服务器端用80端口监听客户端的请求,客户端由系统随机选择一个端口,如5000,与客户端进行交换,服务器把相应的请求返回给客户端的5000端口。然后使用ip层的ip地址查找目的端。
3.客户端的网络层不用关心应用层和传输层的东西,主要做的是通过查找路由表确定如何到达服务器,期间可能经过多个路由器。
4,。客户端的链路层,包通过链路层发送到路由器,通过邻居协议查找给定的ip地址和MAC地址,然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的ip数据包现在就可以传输了,然后发送Ip数据包到达服务器的地址。
发表于 2016-03-20 21:15:04 回复(2)

首先在电脑中查找目标主机。如果本地 DNS 缓存存在,它使用该信息。否则,直到 IP 地址被发现,则执行 DNS 查询。

然后,您的浏览器打开一个 TCP 连接到目标主机,并将根据 HTTP 1.1 的请求(或可能使用 HTTP 1.0 ,但正常的浏览器不这样做了)。

服务器查找所需的资源(如果存在),并使用 HTTP 协议的响应,将数据发送到客户机( = 你的浏览器)

然后浏览器使用 HTML 解析器来重新创建这就是后来提交给你在屏幕上的文档结构。如果发现给外部资源,例如图片, CSS 文件, JavaScript 文件的引用,这些被传递的方式作为 HTML 文档本身相同。

编辑于 2016-11-29 21:34:07 回复(0)
答:1、客户端浏览器通过DNS解析到www.baidu.com的IP地址220.181.27.48,通过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到220.161.27.48,然后通过TCP进行封装数据包,输入到网络层。
2、在客户端的传输层,把HTTP会话请求分成报文段,添加源和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务器进行交换,服务器把相应的请求返回给客户端的5000端口。然后使用IP层的IP地址查找目的端。
3、客户端的网络层不用关系应用层或者传输层的东西,主要做的是通过查找路由表确定如何到达服务器,期间可能经过多个路由器,这些都是由路由器来完成的工作,我不作过多的描述,无非就是通过查找路由表决定通过那个路径到达服务器。
4、客户端的链路层,包通过链路层发送到路由器,通过邻居协议查找给定IP地址的MAC地址,然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包现在就可以传输了,然后发送IP数据包到达服务器的地址。
发表于 2015-10-29 12:06:16 回复(0)
第一步:客户机提出域名解析请求,并将该请求发送给本地的域名服务器。 第二步:当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。 第三步:如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域)的主域名服务器的地址。 第四步:本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。 第五步:重复第四步,直到找到正确的纪录。
发表于 2016-06-16 18:34:48 回复(0)
1、应用层:客户端浏览器通过DNS解析到的IP地址,通过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到这个IP地址,然后通过TCP进行封装数据包,输入到网络层。
2、传输层:在客户端传输层,把HTTP会话请求分成报文段,添加源和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务器进行交换,服务器把相应的请求返回给客户端的5000端口。然后使用IP层的IP地址查找目的端。
3、客户端的网络层不用关心用层或者传输层的东西,主要做的是通过查找路由表确定如何达到服务器,期间可能经过多个路由器,这些都是由路由器来完成工作的,通过查找路由表决定通过哪个路径到达服务器,其中用到路由选择协议。
4、客户端的链路层,包通过链路层发送到路由器,通过邻居协议查找给定的IP地址的MAC地址,然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包现在就可以传输了,然后发送IP数据包到达服务器的地址。
发表于 2017-02-11 11:26:06 回复(0)
1:浏览器解析目标域名,看浏览器缓存是否有目标域名的对应ip,如果没有通过操作系统的hosts文件看是否有对应记录,没有则进行DNS解析(先递归再迭代,通过本地DNS服务器-区域DNS服务器基本可以拿到解析ip,但是书中一般讲的是根据根节点-一级域名服务器的层层向下请求解析的办法,这个只会出现在第一次,之后各级都有相应的缓存了,而且会进行DNS的信息交换传递,所以后续基本不回请求到一级或者二级域名服务器,根节点服务器就更少了);
2:拿到ip地址之后浏览器会调用系统的网络请求接口,生成套接字(也就是传输层的端口号),然后根据计算机安装的TCP/IP协议,进行层层封装,加装ip首部,根据目标ip以及自身掩码可以判断目标主机是否跟自己是同一个网络,如果是,这直接将目标ip的mac地址封装到数据帧首部中,如果找不到mac地址就ARP通过广播方式进行解析目标ip的mac地址;如果跟自己不是同一个网络,则直接将本地网关的mac地址封装到数据帧首部中,如果找不到mac地址就ARP通过广播方式进行解析网关ip的mac地址;
3:根据拿到的目标mac和目标ip,这下终于可以走出去了,发送到网关(如果是不同网络的话),网关也是个路由设备,按照路由算法的规则,路由表找寻目标网络的下一条ip以及对应的出端口发送出去,以此类推最终到达目标主机所在的网络路由器;
4:路由器收到之后只会解封前三层数据包,找到目标主机ip地址后确认在本地网络中存在,然后根据其mac地址发送到目标主机,主机收到之后按照之前来的寻址逻辑,将需求资源封装之后返回给请求主机浏览器,所以你就在浏览器看到目标资源信息了。至此寻址完成,过程大致不复杂,但是里面有很多细节很复杂,包括路由协议,路由协议算法,策略,拥塞控制,断掉重连等等,这就不表了
发表于 2021-11-02 10:30:32 回复(0)

(1) 浏览器获取输入的域名www.baidu.com

(2) 浏览器向DNS请求解析www.baidu.com的IP地址

(3) 域名系统DNS解析出百度服务器的IP地址

(4) 浏览器与该服务器建立TCP连接(默认端口号80)

(5) 浏览器发出HTTP请求,请求百度首页

(6) 服务器通过HTTP响应把首页文件发送给浏览器

(7) TCP连接释放

(8) 浏览器将首页文件进行解析,并将Web页显示给用户。

发表于 2020-07-12 09:20:51 回复(0)
1、应用层:DNS解析www.baidu.com(域名)为对应的IP,通过IP找到服务器路径,客户端向服务器发起HTTP会话,然后通过运输层TCP协议封装数据包,在TCP协议基础上进行传输 2、运输层:HTTP会话会被分成报文段,添加源、目的端口;TCP协议进行主要工作 3、网络层:为数据包选择路由,IP协议进行主要工作 4、数据链路层:相邻结点的可靠传输,ARP协议将IP地址转成MAC地址。
发表于 2020-04-02 00:07:36 回复(0)

1.浏览器获取域名

2.通过DNS协议获取域名对应服务器的ip地址

3.浏览器和对应的服务器通过三次握手建立TCP连接

4.浏览器通过HTTP协议向服务器发送数据请求

5.服务器将查询结果返回给浏览器

6.四次挥手释放TCP连接

7.浏览器渲染结果

涉及到的协议

应用层:HTTP和DNS

传输层:TCP UDP

网络层:IP ICMP ARP

编辑于 2020-02-08 15:38:22 回复(0)
m
发表于 2019-01-01 23:37:26 回复(0)
Http--->DNS---(IP)-->TCP----->IP------>服务器(处理请求)-------->TCP----->http
其实很简单,就是应用层与网络层的连接,只是少不了DNS与TCP的帮忙
发表于 2018-04-10 09:57:58 回复(0)