面试问题:当我们在浏览器中输入一个域名url

阅读:339 2019-03-19 15:26:42 来源:csdn

这个题之前看面经的时候看到过,但是忘了点。

今天在笔试时遇到了:我大概写的是首先会在dns服务器上查找一个映射获取服务器的ip地址(域名-->ip)。然后向服务器发送http请求报文...

但是感觉自己答得不好,今天在网上搜了下这个知识点,然后做下记录。

问题:“在浏览器中输入一个域名url后,接下来会做什么?”

答:第一步就是根据域名获取服务器的ip地址。

如何找到域名与ip地址的映射呢?

浏览器dns缓存------浏览器中有一个dns缓存器,会记录我们之前一段时间我们的访问记录中域名--->ip。那么浏览器首先会在自己的dns缓存中进行查找这个域名,如果找到了就获得服务器的ip;如果在浏览器的dns缓存中没有找到访问的域名,会在系统缓存中查找;

系统缓存------如果在浏览器dns缓存中没有找到对应的域名,接下来会在系统缓存中进行查找(gethostbyname)获取域名---->ip。如果找到了直接访问服务器ip;如果系统缓存中没有找到,会到路由器缓存中查找;

路由器dns缓存--------如果系统缓存中没有找到目的域名的映射,会将查询请求发送到路由器,每个路由器中有自己的dns缓存。然后会在路由器的dns缓存中查找,如果没有找到会到isp的dns缓存中去查找。合法的域名最终在isp缓存中都能够找到,最终浏览器获得了域名对应的服务器的ip;

第二步浏览器向服务器的ip的端口号发起tcp三次握手建立连接;

第三步浏览器向服务器发送http请求报文;

第四步服务器根据http请求报文的参数找到请求的资源;

第五步服务器给浏览器发送http应答报文,把资源返回给客户端;

上一篇: DNS域名解析
相关文章
{{ v.title }}
{{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
你可能感兴趣
推荐阅读 更多>
推荐商标

{{ v.name }}

{{ v.cls }}类

立即购买 联系客服