当咱们在浏览器中键入URL并回车,例如:小编在浏览器的地址栏中键入www.baidu.com后就打开了百度的首页,那么在这个过程当中到底发生了一些什么呢?下面就由小编带你们来了解一下。浏览器
1. 网络:
由若干计算机、集线器、交换机或路由器以及链接这些设备的链路所造成的就是网络
缓存
2. 互联网:
网络与网络之间经过路由器互相链接起来,造成一个更大的网络,即互联网
服务器
3. 因特网:
因特网就是世界上最大的互联网cookie
1. DNS(域名解析):
当咱们在浏览器中键入URL(例如:www.baidu.com)后,浏览器其实并不知道域名对应的服务器具体在哪一个网络中,咱们首先须要知道域名对应的ip地址才能够进行去寻找其所属的网络。DNS就是用来查询某个域名对应IP地址。网络
DNS解析域名的过程其实就是多个DNS服务器的接力。客户端查询本地缓存,查看是否已有该域名对应的IP地址,若是有则直接从缓存中取出该域名对应的IP地址进行访问。若是缓存中没有,则须要向本地DNS服务器发出请求进行域名解析工做,若是在本地DNS服务器中也没法查询到该域名所对应的IP,那么,这个请求将会被发送到根DNS服务器进行转发处理,以此类推,直到最后找到该域名所对应的IP地址。
session
2. 创建TCP链接
当咱们获取到目标服务器的IP地址后,咱们的浏览器会先与目标服务器进行TCP链接(三次握手)。这条链接就是客户端与服务端的一个通道,以后的数据传输都在这条通道内。tcp
3. HTTP请求/响应
浏览器将请求参数根据五层模型将请求数据一层一层向下传递,每通过一层添加头部,当数据传递到服务端时,服务端每通过一层删除头部,最终将数据交付给服务端的应用。当服务端第一次向客户端发送响应时,该服务器会返回一个sessionId存入该浏览器的cookie中,以便区分不一样会话。
blog
4. 断开TCP链接
当客户端与服务端的通讯结束的时候咱们须要断开刚才咱们所创建的链接(四次挥手)。在HTTP/1.1以前默认的链接是短链接,即当服务端给客户端响应后就断开链接,那么当客户端与服务端的请求次数较多时,这种方式就须要频繁的建立/断开链接,这样的操做会使得服务器的资源很快被耗尽。因此在HTTP/1.1开始默认的链接为长链接,即服务端给客户端响应后不立刻断开链接,而是这条链路上300s左右没有数据传输,则关闭此链接。dns