六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 32|回复: 0

研究gmail快速响应原理——猜想

[复制链接]

升级  57.33%

40

主题

40

主题

40

主题

秀才

Rank: 2

积分
136
 楼主| 发表于 2013-1-23 02:20:03 | 显示全部楼层 |阅读模式
今天看见同事在那搞一个httpfox的(firefox)插件,刚巧跟boss讨论了一些问题,他提到gmail的快速响应,他的意思是说当你使用gmail邮箱时,有新邮件到达时,它能够立即就在页面上显示出来。
于是我使用httpfox观察了gmail的请求行为,发现它每隔1分钟就请求服务器一次,如下图:

我在一次定时请求的开始时给该gmail发送了一封邮件,继续观察了gmail的行为,如下图:

可以看出,只隔了3秒就收到了我发送的邮件,这3秒还包括我发送邮件操作的时间(邮件事先写好了,只要按一个发送按钮)。
这就是我好奇的地方,为何能如此之迅速。搞web开发的都明白http协议,服务器是不会记录浏览器状态的,也不会主动请求浏览器。
我的猜测是gmail每个一分钟请求一次服务器目的是维持浏览器在服务器端的状态(即在线状态),而在服务器端可能有个端口在监听浏览器的请求,如果隔了一分钟没有收到浏览器的请求则在服务器端将浏览器的状态设为离线状态。在这样的前提下,如果服务器端记录的浏览器的状态为在线的话,那么当有新邮件到达时就会通过ajax即时反应到浏览器中,如果为离线状态则将新邮件保持在服务器中,等到用户下次登录gmail的时候再在其浏览器中体现出来。
PS:这只是我的猜测,不知道和事实是否有那么几分相似。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表