用户打开浏览器,输入 baidu.com,页面展示百度首页。整个过程发生了什么?

初次尝试写第一篇博客,居然就得去了解一个这么高级的问题,着实兴奋!

输入baidu.com到页面展现到底发生了一个什么过程呢?

首先我们需要知道浏览器并不知道baidu.com是什么东西。实际上baidu.com是一个域名,需要域名解析成一个IP地址,通过这个IP地址来为用户返回他需要的结果。
一个完整的网站它是由协议(例如http,https,file,ftp),域名(如baidu.com),端口号(如:8080),文件路径名,文件名组成的。只不过大多数情况下,这些都会被省略不写。

发生过程如下。

1)用户输入—本机获取URL

2)解析URL信息,在本机hosts文件中查找与之对应的IP地址(域名解析)

什么是域名?为什么不直接使用IP?
    1.域名就是把IP语义化,是用户方便记住的一个名称。通过域名可以更方便的找到IP地址。
    2.IP:网络之间互连的协议,是Internet Protocol的外语缩写。它差不多长成这个样子 210.70.140.0 。
所以IP是一个鬼都不愿意去记的一个东西。

如果本地hosts文件中有与之对应的IP地址,则直接给用户返回IP地址(如果没有则进行下一步)

3)发送dns请求到本地服务器,如果本地服务器有IP地址则直接返回结果(如果没有则下一步)

4)到根服务器,根服务器会告诉本地服务器到域服务器中查找。

4)本地dns服务器向顶级域.com发起请求,顶级域受到请求,告诉本地dns服务器域名的解析服务器的地址。并不是告诉本地服务器域名和IP地址的对应关系。

5)本地dns服务器向域名的解析服务器发出请求,这时就能收到一个域名和IP地址对应关系,本地DNS服务器不仅要把IP地址返回给用户电脑,还要把这个对应关系保存在缓存中,以备下次别的用户查询时,可以直接返回结果,加快网络访问。

6)IP地址返回给本地服务器处理请求,服务器一般都会安装一个用于接收处理请求的应用—web server常见的web server产品有apache、nginx等并且决定采用哪种方式来处理这个请求,读取请求,然后形成html响应。

7)客户端浏览器开始处理,解析渲染页面!

8)客户端页面展现,将解析渲染后进行可视化!

12.15
my first blog!

你可能感兴趣的:(用户打开浏览器,输入 baidu.com,页面展示百度首页。整个过程发生了什么?)