您的位置:首页 > 其它

笔试题目---描述在浏览器中敲入一个网址并按下回车后所发生的事情

2013-09-08 22:23 141 查看
转自http://blog.csdn.net/hackbuteer1/article/details/11263443

答:浏览器输入网址之后,首先

步骤1:需要查找域名的IP地址,DNS查找过程如下:

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

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

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

(4)ISP DNS 缓存 – 接下来要check的就是ISP缓存DNS的服务器。在这一般都能找到相应的缓存记录。

(5)递归搜索 – 你的ISP的DNS服务器从跟域名服务器开始进行递归搜索,从.com顶级域名服务器到Facebook的域名服务器。一般DNS服务器的缓存中会有.com域名服务器中的域名,所以到顶级服务器的匹配过程不是那么必要了。

步骤2:浏览器给web服务器发送一个HTTP请求。请求中也包含浏览器存储的该域名的cookies。可能你已经知道,在不同页面请求当中,cookies是与跟踪一个网站状态相匹配的键值。这样cookies会存储登录用户名,服务器分配的密码和一些用户设置等。Cookies会以文本文档形式存储在客户机里,每次请求时发送给服务器。

步骤3:服务的永久重定向响应

步骤4:浏览器跟踪重定向地址

步骤5:服务器“处理”请求

步骤6:服务器发回一个HTML响应

步骤7:浏览器开始显示HTML

步骤8:浏览器发送获取嵌入在HTML中的对象

下面转自http://zhidao.baidu.com/link?url=yTPBrDTzMEilwqttCtxtHhdi6wnEKmmOtYpWLPpGBqjI1YUlYOefPPfGhQ4ilX11FchwG5-jzBpyqrdfN_QEv_

1.语法解析网址,如果你的网址不合法则抛异常,比如
你录入 http://www.baidu.com 浏览器就调用http协议
录入 ftp://ftp.tsinghua.edu.cn 浏览器就调用ftp协议
录入浏览器不识别的协议则报错

以下只针对http协议

2.查询cache
网址被分段解析后,浏览器首先在本地缓存查询cache,如果cache被标明是最新的则直接使用缓存内容。

3.DNS解析(可选)
向dns缓存服务(DNS client)或服务器查询域名对应的ip

4.连接服务器(可选)
tcp/ip 握手连接服务器,如果已经有了被保持的连接,则复用此连接(Connection: Keep-Alive)

5.发送http请求
向指定ip发送请求,具体http header定义查看 rfc文档
例如如果本地有cache但不能确定是否是最新的cache则发送
If-Modified-Since 和 If-None-Match 头

6.接收服务器响应
如果服务器响应为重定向(301或302)则浏览器必须取响应的Location ,然后重复1-6步骤。
如果服务器响应为304,则浏览器使用本地cache
如果响应为200,则接收具体的数据。

7.断开同服务器的连接(可选)
如果服务器响应为Connection: Keep-Alive,则需要保持连接,备后继http使用

8.写cache
将可以缓存的内容保存到cache
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐