从输入url到页面完成加载发生了什么

先来个流程总述:
DNS解析:将域名解析成IP地址
TCP连接:TCP三次握手
发送HTTP请求
服务器处理请求并返回HTTP报文
浏览器解析渲染页面
连接结束:TCP四次挥手

1、DNS解析

在浏览器输入URL后,首先要经过域名解析。浏览器通过向 DNS 服务器发送域名,DNS 服务器查询到与域名相对应的 IP
地址,然后返回给浏览器,浏览器再将 IP 地址打在协议上,同时请求参数也会在协议搭载,然后一并发送给对应的服务器。

|1.什么是URL

URL(Uniform Resource Locator),统一资源定位符,用于定位互联网上资源,俗称网址。比如
http://www.w3school.com.cn/ht…, 遵守以下的语法规则:
scheme://host.domain:port/path/filename 各部分解释如下:
scheme:定义因特网服务的类型。常见的协议有 http、https、ftp、file,其中最常见的类型是 http,而 https 则是进行加密的网络传输。
host定义域主机(http 的默认主机是 www)
domain定义因特网域名,比如 w3school.com.cn
port:定义主机上的端口号(http 的默认端口号是 80)
path:定义服务器上的路径(如果省略,则文档必须位于网站的根目录中)。
filename:定义文档/资源的名称

2. 什么是DNS

DNS(domain name
system,域名系统):因特网上域名和IP地址相互映射的分布式数据库;简单理解就是域名与IP地址的对照表,因为域名(如:www.google.com)对于我们而言,更便于记忆,但是机器却不擅长这种表达方式,因此需要将域名转换为IP地址,以便于机器识别,
这便有了DNS。

3. 根域名服务器

根服务器是架设互联网的必须设施,管理互联网的主目录,全球共有13套根域名服务器

4. 递归查询

客户端主机向本地域名服务器的查询是递归查询;所谓递归查询:客户端主机查询的域名地址无法在本地域名服务器中找到,因此本地域名服务器就以DNS客户端的身份向其他根域名服务器发起请求,进行查询,而不是让客户端主机去一直查询;
递归查询的结果要么是返回的IP地址,要么是报错,表示无法查询到地址;

5. 迭代查询

本地域名服务器向根服务器、顶级域名服务器和主机域名服务器发起的查询请求就是迭代的过程,

如:本地域名服务器向根服务器发起查询请求,根服务器中会告诉本地域名服务器:”我这里没有你要找的内容,你去顶级域名服务器上找吧“,
并将顶级域名服务器的地址返回给本地域名服务器,本地域名服务器接收到后,继续向顶级域名服务器发送请求;

顶级域名服务器要么返回ip地址,要么告诉本地域名服务器下一步要向哪个权限域名服务器发送请求,直到找到ip地址或找不到ip返回报错信息,然后信息返回给客户端主机;

下图给出了这两种查询的差别

递归过程:主机→本地DNS服务器→其他DNS服务器(如:我要找一个苹果吃,找到了A,问A有没有,A说我帮你去找B,B可能有,果真B有,然后B将苹果给了A,A再将苹果给我,这就是递归)
迭代过程:本地DNS服务器→根服务器,本地DNS服务器→顶级域名服务器,本地DNS服务器→权限域名服务器;(如:我要找一个苹果,找到了A,A说我也没有,B可能有,你去找B吧;我又找B,B说我也没有,你去找C吧,我又去找C,终于找到了苹果,这就是迭代的过程)

你可能感兴趣的:(从输入url到页面完成加载发生了什么)