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

  • 来源:csdn
  • 更新日期:2018-05-21

摘要:这个题之前看面经的时候看到过,但是忘了点。 今天在笔试时遇到了:我大概写的是首先会在DNS服务器上查找一个映射获取服务器的IP地址(域名-->IP)。然后向服务器发送HTTP请求报文... 但是感觉自己答得不好,今天在网上搜了下这个知识点,然后做下记录。

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

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

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

timg (41).jpg

问题:“在浏览器中输入一个域名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应答报文,把资源返回给客户端;

 

第六步通过四次挥手释放TCP连接;