前言
写这篇文章的目的:看完了图解HTTP,系统的梳理一下整个流程。就想到了这个题目,浏览器输入url回车后发生了什么。参考了很多文章,整理了一下,作自己理解。
大概过程
浏览器回车后:
- 无CDN情况下:
- 域名解析,获取目标服务器IP地址
①浏览器向本地DNS服务器请求对该域名的解析。
②本地DNS服务器中如果缓存有这个域名的解析结果,则继续进行。
③本地DNS服务器中如果没有关于这个域名的解析结果的缓存,则以递归方式向整个DNS系统请求解析,获得应答后将结果反馈给浏览器。 - TCP连接,三次握手
- HTTPS四次握手、HTTP封装请求(应用层包)
- 发送请求(TCP段)
- (网络层)路由寻址
(忽略链路层和物理层) - 服务器响应
- 客户端关闭连接,TCP四次挥手
- 有CDN情况下
①经过本地DNS系统解析,DNS系统会最终将域名的解析权交给CNAME指向的CDN专用DNS服务器。
②CDN的DNS服务器将CDN的全局负载均衡设备IP地址返回用户。
③用户向CDN的全局负载均衡设备发起内容URL访问请求。
④CDN全局负载均衡设备根据用户IP地址,以及用户请求的内容URL,选择一台用户所属区域的区域负载均衡设备,告诉用户向这台设备发起请求。
⑤区域负载均衡设备会为用户选择一台合适的缓存服务器提供服务,选择的依据包括:根据用户IP地址,判断哪一台服务器距用户最近;根据用户所请求的URL中携带的内容名称,判断哪一台服务器上有用户所需内容;查询各个服务器当前的负载情况,判断哪一台服务器尚有服务能力。基于以上这些条件的综合分析之后,区域负载均衡设备会向全局负载均衡设备返回一台缓存服务器的IP地址。
⑥全局负载均衡设备把服务器的IP地址返回给用户。
1 DNS域名解析
-
DNS(Domain Name System):域名转IP地址
-
DNS具有两层含义:
- 一个由分层的DNS服务器实现的分布式数据库;
- 一个允许主机查询分布式数据库的应用层协议。有三种类型的DNS服务器:根DNS服务器、顶级DNS服务器和权威DNS服务器。这些服务器以下图的层次结构组织起来。
-
有三种类型的DNS服务器:根DNS服务器、顶级DNS服务器和权威DNS服务器。这些服务器以下图的层次结构组织起来。