从输入网址到获得页面的过程

从输入网址到获得页面的过程

  1. 查询DNS,获取域名对应的IP地址

浏览器搜索自身的DNS缓存,如果找到则返回IP;

否则,浏览器就向本地域名服务器请求查询IP,如果存在,则返回IP;

否则,本地域名服务器发起一个迭代DNS请求,查询到IP后返回给本地主机;

  1. 浏览器获得域名对应的IP地址后,发起HTTP三次握手;

  2. TCP/IP连接建立起来后,浏览器就可以向服务器发送http请求;

  3. 服务器接受到这个请求,根据路径参数,经过后端的一些处理生成HTML页面,代码返回给浏览器;

  4. 浏览器拿到完整的HTML页面代码开始解析和渲染,如果遇到引用的外部JS、CSS图片等静态资源,他们同样也是一个个的HTTP请求,都需要经过上面的步骤。


输入www.baidu.com过程

答:

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数据包到达服务器的地址。

事件顺序

(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(域名解析服务)

DNS解析域名为目的IP,通过IP找到服务器路径,客户端向服务器发起HTTP会话,然后通过运输层TCP协议封装数据包,在TCP协议基础上进行传输

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

HTTP会话会被分成报文段,添加源、目的端口;TCP协议进行主要工作

(3)网络层:IP(IP数据数据包传输和路由选择),

为数据包选择路由,IP协议进行主要工作,ARP(将本机的默认网关IP地址映射成物理MAC地址)

(4)数据链路层:ICMP(提供网络传输过程中的差错检测),相邻结点的可靠传输,ARP协议将IP地址转成MAC地址。

你可能感兴趣的:(网络基础,网络,网络协议,http)