在浏览器地址栏输入百度网址之后的故事(面试必考)


面试的时候,面试官经常会问这样的问题,我在浏览器地址栏输入”www.baidu.com”,之后发生了哪些事情呢,这个问题其实是想问你与网页访问有关的网络协议,下面我们就来简单梳理一下,如何比较得体的回答这个问题。

Step 1:地址解析。

如果是首次访问百度,输入地址回车后,浏览器访问系统Host文件从中寻找www.baidu.com对应的IP地址(Windows默认的host文件基本是空的,所以这步执行不会成功)。没有找到对应IP地址,则主机向DNS服务器发送请求,DNS服务器解析到域名对应的IP并返回。事实上,你在地址栏输入百度的IP而不是域名也可以实现访问。DNS服务既提供从域名到IP的解析,也提供从IP到域名的解析。

DNS服务详解:
http://blog.csdn.net/Solo95/article/details/78524886

这里写图片描述

Step 2:建立TCP连接

拿到百度的IP后,浏览器通过TCP协议建立TCP连接。TCP是一种可靠的传输协议,其建立要经过三次握手,其释放要经历四次挥手

TCP连接的三次握手和四次挥手:
http://uule.iteye.com/blog/2213562

Step 3:使用HTTP协议请求网页内容。

HTTP是一种请求/应答协议,通过客户机和服务器相互发送信息的方式工作。通常HTTP消息包括客户机向服务器的请求消息服务器向客户机的响应消息。使用HTTP消息头,可以实现客户机与服务器之间的HTTP请求和HTTP应答。消息头分为通用头、请求头、相应头、实体头。

Step 4:渲染。

客户端收到服务器的HTTP应答后,从其中提取出HTML文件,然后进行渲染,之后就可以看到百度的首页了。


查看知乎讨论:
用户用浏览器访问一个网站的时候背后的过程与步骤是怎样的?
https://www.zhihu.com/question/20513729

posted @ 2017-11-13 21:16  从流域到海域  阅读(80)  评论(0编辑  收藏  举报