如今,互联网已经非常流行,人人都可以很轻易的上网,但是你知道发生在一个网页浏览背后的故事吗?

今天我们来分析一下,在我们访问网站时,背后发生了什么?

假如我们现在要访问 www.google.com 这个网站(虽然很多人访问不了)。

域名解析

第一步就是域名解析,它就是把易理解的域名翻译成网联网世界的门牌号 -- IP 地址。

你的浏览器向你的设备(电脑,手机,平板或者其它可以联网的设备)发出域名解析请求,你的设备会按照以下顺序查询这个域名:

  1. 本地的 hosts 配置
  2. 当前网络连接的 DNS

网络连接的 DNS 一般有三种情况:

  • 默认配置,这时候会使用网络服务商的 DNS,比如电信,联通,移动等的域名服务器
  • 知名 DNS,国外的 Google DNS, Public DNS 或者国内的 114 等服务器
  • 本机地址,如果你使用了 Dnsmasq 等服务,就可以在本地配置一个 DNS 服务器。

域名解析服务是先到先处理的原则,所以如果一个请求有多个返回结果,之后的请求就会被舍弃。

联想

  • 利用了先到先处理原则,良民创造出了 CDN 来加速访问,恶民则拿来搞破环,比如 DNS 污染。
  • DNS 污染就是在某些 DNS 服务器里面放上了错误的 DNS 记录,导致用户请求的时候获得了错误的 IP 地址。
  • 如果使用了恶意用户的 DNS 服务器,则还可能存在被钓鱼的风险。

路由表

经过第一步的域名解析,我们已经知道了目标网站的 IP ,而要向目标 IP 发送请求,则需要路由表。

如果把寻找目标 IP 的路线与现实生活中找路线类比的话,IP 地址就是要寻找的目标地址,中间经过的网关就是一个个的十字路口,路由表则是十字路口的路标。

路由表记录着去往那个方向走那个网关的信息,与十字路口只有四个方向不同的是,路由表可选的是与你直接相连的其他网关。

除了各个网关可以维护路由表以外,本地也可以维护一份路由表。

联想

  • 路由表就像路标,通过合理使用路由表就可以实现网络流量的分流,也就是智能路由。
  • 某些国际化的网站,会根据来源 IP 来返回最近的 IP,所以单纯的路由表并不能帮助你完美实现国内外分流,这时候你就需要智能 DNS

发送请求

有了目标 IP 和路径,我们就可以开始发送请求了。

根据请求的不同,浏览器会封装你的请求,形成一个个的数据包,从我们设备的某个端口,连接我们的网卡,经过网线,路由器,按照上一步获得的路线,向目标 IP 地址传输。

联想

为了通信安全的要求,通常有两种做法:

  • 信道加密,保证通过的路线是安全的,通常是专有线路或者隧道线路,VPN 就是实现这一步的好工具
  • 数据加密,我们在通信两端加密数据,使得中间人无法获取真实数据,从而达到通信安全的目的。 HTTPS 就是为了实现这个目的。

服务端处理

收到你的访问请求之后,服务端会根据协议来处理你的数据包,解析出你的数据之后,根据业务处理你的请求,并返回给你请求结果。

请求结果数据包通过之前的路线依次返回,直到到达你的设备,你的设备则根据请求的端口和数据包,调用对应的应用程序也就是你的浏览器处理。

浏览器接收到结果之后,通过其引擎把页面渲染出来。至此,你就可以看到页面了。

说明

以上内容如果对你有帮助,请评论或者转发以支持原作者,或者使用我的小尾巴 云梯VPN 购买。