初次尝试写第一篇博客,居然就得去了解一个这么高级的问题,着实兴奋!
输入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!