当在浏览器中输入一个url后回车,后台发生了什么?

本文详细介绍了从浏览器输入URL到页面加载完成的整个过程,包括DNS解析、HTTP请求、服务器响应等关键步骤。

面试中被问到:当在浏览器中输入一个url后回车,后台发生了什么?

第一步是通过访问的域名找出其IP地址。DNS查找过程如下:

1.浏览器缓存 – 浏览器会缓存DNS记录一段时间。 有趣的是,操作系统没有告诉浏览器储存DNS记录的时间,这样不同浏览器会储存个自固定的一个时间(2分钟到30分钟不等)。

2.系统缓存 – 如果在浏览器缓存里没有找到需要的记录,浏览器会做一个系统调用(windows里是gethostbyname)。这样便可获得系统缓存中的记录。

3.路由器缓存 – 接着,前面的查询请求发向路由器,它一般会有自己的DNS缓存。

4.ISP DNS 缓存+递归搜索,详细如下:  

  • 接下来要check的就是ISP缓存DNS的服务器。在这一般都能找到相应的缓存记录。客户机提出域名解析请求,并将该请求发送给本地的域名服务器。
  • 当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。
  • 如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域)的主域名服务器的地址。
  • 本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。
  • 重复第四步,直到找到正确的纪录。
第二步是浏览器给web服务器发送一个HTTP请求,第三步是服务器接收到获取请求,然后处理并返回一个HTML响应。
具体步骤如下:

1.HTTP客户初始化一个与服务器主机www.yesky.com中的HTTP服务器的TCP连接。HTTP服务器使用默认端口号80监听来自HTTP客户的连接建立请求。这里面包括TCP三次握手神马的(HTTP是建立在TCP/IP上的),涉及到socket通信的种种过程。

2.HTTP客户经由与TCP连接相关联的本地套接字发出—个HTTP请求消息。这个消息中包含路径名/somepath/index.html。

3.HTTP服务器经由与TCP连接相关联的本地套接字接收这个请求消息,再从服务器主机的内存或硬盘中取出对象/somepath/index.html,经由同一个套接字发出包含该对象的响应消息(MVC模型)。

4.HTTP服务器告知TCP关闭这个TCP连接(不过TCP要到客户收到刚才这个响应消息之后才会真正终止这个连接,四次挥手的前两次挥手)。

5.HTP客户经由同一个套接字接收这个响应消息。TCP连接随后终止(四次挥手的后两次挥手)。该消息标明所封装的对象是一个HTML文件。客户从中取出这个文件,加以分析后发现其中有10个JPEG对象的引用。

6.给每一个引用到的JPEG对象重复步骡1-4。

只是简单一总结,应付面试,大神的叙述更详尽,参考:

http://www.cnblogs.com/wenanry/archive/2010/02/25/1673368.html



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值