首页 > 其他分享 >打开网址

打开网址

时间:2022-10-30 13:11:45浏览次数:40  
标签:缓存 浏览器 IP CDN 网址 DNS 服务器 打开

打开网址

最简单的浏览器 HTTP 请求过程

  • 浏览器从地址栏的输入中获得服务器的 IP 地址和端口号;

  • 浏览器用 TCP 的三次握手与服务器建立连接;

  • 浏览器向服务器发送拼好的报文;

  • 服务器收到报文后处理请求,同样拼好报文再发给浏览器;

  • 浏览器解析报文,渲染输出页面。

真实的网络世界

如果我们用的是电脑台式机,可能会使用带水晶头的双绞线连上网口,由交换机接入固定网络;如果我们用的是手机、平板电脑,可能会通过蜂窝网络、WiFi,由电信基站、无线热点接入移动网络。接入网络的同时,网络运行商会给我们的设备分配一个 IP 地址,这个地址可能是静态分配的,也可能是动态分配的。静态 IP 就始终不变,而动态 IP 可能我们下次上网就变了。

当我们通过域名访问网站时,就要用 DNS 协议开始从操作系统、本地 DNS、根 DNS、顶级 DNS、权威 DNS 的层层解析,当然这中间有缓存,可能不会费太多时间就能拿到结果。互联网上还有另外一个重要的角色 CDN,DNS 解析可能会给出 CDN 服务器的 IP 地址,这样我们拿到的就会是 CDN 服务器而不是目标网站的实际地址。因为 CDN 会缓存网站的大部分资源,比如图片、CSS 样式表,所以有的 HTTP 请求就不需要再发到目标网站,CDN 就可以直接响应我们的请求,把数据发给我们。

由 PHP、Java 等后台服务动态生成的页面属于“动态资源”,CDN 无法缓存,只能从目标网站获取。于是我们发出的 HTTP 请求就要开始在互联网上的“漫长跋涉”,经过无数的路由器、网关、代理,最后到达目的地。目标网站的服务器对外表现的是一个 IP 地址,但为了能够扛住高并发,在内部也是一套复杂的架构。通常在入口是负载均衡设备,在后面是许多的服务器,构成一个更强更稳定的集群。负载均衡设备会先访问系统里的缓存服务器,它们的作用与 CDN 类似,不过是工作在内部网络里,把最频繁访问的数据缓存几秒钟或几分钟,减轻后端应用服务器的压力。如果缓存服务器里也没有,那么负载均衡设备就要把请求转发给应用服务器。它们又会再访问后面的数据库服务,实现用户登录、商品查询、购物下单、扣款支付等业务操作,然后把执行的结果返回给负载均衡设备,同时也可能给缓存服务器里也放一份。

应用服务器的输出到了负载均衡设备这里,请求的处理就算是完成了,就要按照原路再走回去,还是要经过许多的路由器、网关、代理。如果这个资源允许缓存,那么经过 CDN 的时候它也会做缓存,这样下次同样的请求就不会到达源站了。

最后网站的响应数据回到了我们的设备,它可能是 HTML、JSON、图片或者其他格式的数据,需要由浏览器解析处理才能显示出来,如果数据里面还有超链接,指向别的资源,那么就又要重走一遍整个流程,直到所有的资源都下载完。

标签:缓存,浏览器,IP,CDN,网址,DNS,服务器,打开
From: https://www.cnblogs.com/euler0525/p/16841056.html

相关文章