简单来说是以下步骤
- 输入URL地址
- 浏览器查找域名对应的IP地址
- 浏览器向web服务器发送一个HTTP请求
- 服务器处理请求
- 服务器返回一个HTTP响应
- 浏览器显示HTML
- 浏览器发送请求获取嵌入在HTML中的资源
1,输入地址
这个不必多说,现在的很多浏览器在你输入某些字母的时候会智能推荐。
2,浏览器查找域名对应的IP地址(域名解析)
- 当你按下回车键的时候,浏览器首先要做的事情就是解析你的域名,举个栗子:www.baidu.com域名,baidu.com是主域名,www是子域名。浏览器首先会查看本地的host文件,看看其中有没有和这个域名对应的规则,如果有的话就直接解析。这也是为什么在本地开发配置环境时要配置host文件,目的就是为了切换环境。
- 如果在本地host文件没有找到对应的ip地址,浏览器就会发送一个DNS请求到本地DNS服务器,本地的DNS服务器一般都是你的网络接入服务器商来提供的,比如中国电信。
- 到达本地DNS服务器后,会在缓存记录中查找,如果有记录,则直接返回。
- 缓存中没有记录,则本地DNS服务器继续向域服务器发出请求,例如baidu.com会请求.com域服务器。域服务器收到请求后也不会直接返回域名和IP地址对应关系,而是返回能够解析baidu.com这个url的解析服务器地址。
-
本地DNS服务器向域名解析服务器(域服务器)发出请求,这时就能收到一个域名和IP地址对应的关系,本地DNS服务器不仅要把IP地址返回给浏览器,还会把这个对应关系保存在缓存中,以备下次用户再次查询时,可以直接返回结果,加快网络访问。
下图完美的解释了这一过程。
知识扩展
Q:什么是DNS?
A:DNS全程是Domain Name System,即域名系统。因特网上作为域名和IP地址互相映射的一个分布式数据库,能够使得用户不用去记住IP地址,只需要记住字母即可方便的进行互联网访问。举个栗子:baidu.com的IP地址为167.23.10.2,我们很难记住它的IP地址,但是却能记住baidu.com。DNS就像电话本一样,当我输入域名后,能找到对应的电话(IP地址)。
Q:了解DNS负载均衡吗?
A:当一个网站有了足够多的用户的时候,如果每次请求的资源都在同一台服务器上,那么这台服务器随时可能会崩掉,处理办法就是DNS负载均衡,原理是在DNS服务器中为同一个主机名配置多个IP地址,在应答DNS查询时,引导客户端的访问到不同的机器上去,达到负载均衡的目的。