6 在浏览器的地址栏输入网址,再按下回车,发生了什么?

1 输入的是IP地址

简述:

  1. 浏览器从地址栏的输入获得服务器的IP地址和端口号
  2. 浏览器用TCP的三次握手与服务器建立连接
  3. 浏览器向服务器发送拼接好的报文
  4. 服务器收到报文后处理请求,同样拼好报文再发给浏览器
  5. 浏览器解析报文,渲染输入页面

2 输入的是域名

浏览器先看自己的缓存有没有,没有就向操作系统要,还没有就检查本机域名解析文件 hosts,让浏览器知道域名对应的IP地址,就可以愉快地建立TCO连接发送HTTP请求了。

3 真实的网络世界

第一个场景只有浏览器和服务器;第二个场景增加了一个DNS角色。真实的世界会更复杂。

  1. 接入网络:网线接入固定网络;蜂窝网、WIFI等接入移动网络,运营商分配一个IP地址。
  2. 域名解析:层层解析,缓存。
  3. CDN 缓存网站大部分资源,如静态资源,直接响应你的请求,发送数据给你。
  4. 从目标网站获取动态资源
    1. 目标网站服务器,入口是负载均衡设备,背后是许多服务器构成的集群
    2. 负载均衡设备先访问系统的缓存服务器,如 memory级缓存 Redis,和disk级缓存 Varnish。
    3. 缓存服务器没有,负载均衡设备把请求转发给 应用服务器。
    4. 应用服务器 的输出到了负载均衡设备里,请求的处理就算完成,然后按原路返回,经多许多路由器、网关、代理等。
  5. 网站的响应数据回到了设备,可能是HTML、json、图片或者其他格式的数据,需要浏览器解析处理才能展示,如果数据里有超链接,指向别的资源,那么就又要重走一遍流程,直到所有资源下载完成。
原文地址:https://www.cnblogs.com/hqq2019-10/p/14694135.html