从浏览器键入url后分析网络请求过程

当我们在浏览器中键入URL并回车,例如:小编在浏览器的地址栏中键入www.baidu.com后就打开了百度的首页,那么在这个过程中到底发生了一些什么呢?下面就由小编带大家来了解一下。

互联网的基本概念:

1. 网络:

由若干计算机、集线器、交换机或路由器以及连接这些设备的链路所形成的就是网络

2. 互联网:

网络与网络之间通过路由器互相连接起来,形成一个更大的网络,即互联网

3. 因特网:

因特网就是世界上最大的互联网

网络请求分析:

1. DNS(域名解析):

当我们在浏览器中键入URL(例如:www.baidu.com)后,浏览器其实并不知道域名对应的服务器具体在哪个网络中,我们首先需要知道域名对应的ip地址才可以进行去寻找其所属的网络。DNS就是用来查询某个域名对应IP地址。

DNS解析域名的过程其实就是多个DNS服务器的接力。客户端查询本地缓存,查看是否已有该域名对应的IP地址,如果有则直接从缓存中取出该域名对应的IP地址进行访问。如果缓存中没有,则需要向本地DNS服务器发出请求进行域名解析工作,如果在本地DNS服务器中也无法查询到该域名所对应的IP,那么,这个请求将会被发送到根DNS服务器进行转发处理,以此类推,直到最后找到该域名所对应的IP地址。

2. 建立TCP连接

当我们获取到目标服务器的IP地址后,我们的浏览器会先与目标服务器进行TCP连接(三次握手)。这条连接就是客户端与服务端的一个通道,之后的数据传输都在这条通道内。

3. HTTP请求/响应

浏览器将请求参数根据五层模型将请求数据一层一层向下传递,每经过一层添加头部,当数据传递到服务端时,服务端每经过一层删除头部,最终将数据交付给服务端的应用。当服务端第一次向客户端发送响应时,该服务器会返回一个sessionId存入该浏览器的cookie中,以便区分不同会话。

4. 断开TCP连接

当客户端与服务端的通信结束的时候我们需要断开刚才我们所建立的连接(四次挥手)。在HTTP/1.1之前默认的连接是短连接,即当服务端给客户端响应后就断开连接,那么当客户端与服务端的请求次数较多时,这种方式就需要频繁的创建/断开连接,这样的操作会使得服务器的资源很快被耗尽。所以在HTTP/1.1开始默认的连接为长连接,即服务端给客户端响应后不马上断开连接,而是这条链路上300s左右没有数据传输,则关闭此连接。

posted @ 2018-04-14 18:06  Arthur_08320  阅读(826)  评论(0编辑  收藏  举报