我们的浏览器究竟是如何工作的

打开一个浏览器,输入网址 www.baidu.com,点击回车,很快,你将看到一个全国人民喜闻乐见的页面,那么从你点击回车开始到你看到页面这个时间段内,究竟都发生了哪些事情呢?

如果浏览器每天都正常的在工作,你恐怕没有闲情雅致来思考这个问题,但我相信,大多数人都遇到过这样的问题,QQ可以正常登陆,浏览器却无法打开任何网址的情况,我第一次遭遇这种经历时百思不得其解,后来在学习思科这门课时才对这里面的东西有了稍微清晰的了解,最近的工作涉及到了这方面的知识,就顺带着整理了一下。

大多数程序猿都知道,点击回车后,浏览器向服务器发起了get请求,大家也都知道,http请求要想到达目标主机是要走tcp的,但是我们要明白,要想建立TCP连接,是需要知道对方的IP地址和端口号的,没这玩意,是无法建立TCP连接的。对于网站,如果你输入的网址里没有指明端口号,那么,默认就是80端口,端口很容易获得,所以,我们现在需要知道服务器的IP地址。

        这个时候就该DNS服务器上场了,这就是这个家伙

可以选择自动获得DNS服务器地址,也可以自己设置DNS服务器的地址,每当发生QQ可以上线而网页都打不开的情况时,十之八九就是自动选择的DNS服务器出了问题了,所以这个时候只需要找到一个公共的可用的DNS服务器地址手动设置一下就好了。当我们访问百度时,其实我们先去访问了DNS服务器,DNS服务器拿到www.baidu.com这个网址后就开始找到它所对应的IP地址,如果这个DNS服务器没找到,它会把这个网址发往更高一级的DNS服务器,找不到,再继续向更高级DNS服务器发送,只要网址正确,最终总是可以找到其对应的IP地址的。

        有了服务器的IP地址和端口号以后,我们的浏览器就可以和服务器建立起TCP连接了,把我们的Http请求发送给服务器,服务器收到请求后,再将http响应数据发送给浏览器,浏览器收到数据后再进行渲染展示。

        以上的过程描述非常粗糙,实际过程很复杂,后续的博客将逐步对其进行拆解。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

酷python

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值