这是一道经典的面试题,不光是前端面试会问到,后端也会,此题没有标准的答案,但在你了解的范围内,当然是答得越详细越好,这里就简单记录下几个关键流程吧。

当你在浏览器中输入http://www.xujimmy.com/about时,至少会经过以下几个步骤:

  • 浏览器从url中解析出主机名,如这里的就是www.xujimmy.com
  • DNS解析主机对应的IP,就是解析www.xujimmy.com对应的IP地址,如果本地hosts文件中,有主机名和ip的映射关系,就直接用这个ip,完成解析,如果没有,则查找本地DNS解析器缓存,如果最近没有对该主机进行访问,那么浏览器就得去DNS解析服务器去找IP,然后缓存起来,可能会花费数秒时间
  • 根据IP和端口,与服务器建立TCP连接(三次握手)
  • 一旦连接建立,浏览器就通过该连接来发送HTTP请求
  • 服务器处理请求,并返回HTTP响应包
  • 浏览器接收到来自服务器的响应后,开始解析渲染包中的主体,组织成页面
  • 连接结束