浏览器访问网站的过程

转载 2017年01月03日 13:13:32

假设你用一个全新的浏览器(第一次启动的那种),访问百度(http://www.baidu.com/),在你敲入网址并按下回车之后,将会发生以下神奇的事情:

浏览器先尝试从Host文件中获取http://www.baidu.com/对应的IP地址,如果能取到当然万事大吉大家都能嗨,如果不能,就使用DNS协议来获取IP咯。
在DNS协议中,PC会向你的本地DNS服务器求助(一般是路由器),希望从本地DNS服务器那里得到百度的IP
得到就好,得不到还得向更高层次的DNS服务器求助,最终总能得到百度的IP。
DNS原理:http://blog.csdn.net/yipiankongbai/article/details/25031461

  得到百度的IP,下一步是使用TCP协议,建立TCP连接

在TCP协议中,建立TCP需要与百度服务器握手三次,你先告诉服务器你要给服务器发东西(SYN),服务器应答你并告诉你它也要给你发东西(SYN、ACK),然后你应答服务器(ACK),总共来回了3次,称为3次握手。 

不过,建立TCP连接有个前提(或者说给服务器发消息有个前提):你必须能成功地把消息发到服务器上。虽然已经知道IP,但并无啥用(比如说,你在广东,你知道北京的地理坐标经纬度就能到北京了?你得知道有哪些路通往北京吧你得准备盘缠吧你得花时间吧)。

为了将消息从你的PC上传到服务器上,需要用到IP协议、ARP协议和OSPF协议
我们都知道,你的PC和百度服务器之间一般会有许多路由器之类的东西,IP协议指定了出发地(你的PC)和目的地(服务器);你的数据会经过一个又一个路由器,OSPF决定了会经过那些路由器(用一种叫路由算法的玩意,找出最佳路径);从一个路由器怎么传给下一个路由器?这是ARP协议的JOB,
ARP负责求下一个节点的地址(我们不止是要目的地,还要中间节点的地址)。IP协议使用的是IP地址,整个发送过程中只涉及出发地和目的地2个IP地址,
而ARP协议使用的是MAC地址,整个发送过程中涉及到每一个节点的MAP地址

  现在,我们能和服务器通信,还建立了TCP连接,下一步干嘛,当然是用HTTP协议请求网页内容咯。

你发个HTTP请求报文给服务器,如果服务器禁止你访问它就给你回个"Forbidden",如果它暂时挂掉了就给你回个“内部服务错误”,如果它正常才给你回个“OK“并将你要的数据传给你;如果你还需要其它的东西再去跟它要(它一般还会给你的-_-)。

你收到了服务器的回复,是一坨HTML形式的文本。浏览器必须要能够理解文本的内容,并快速地渲染到屏幕上(浏览器一般用有限自动机来理解文本内容,渲染的话就各看本事了,之所以微软IE卡成狗而谷歌浏览器很6,就是它们的渲染速度不同...)

渲染出来后,你就看到百度的首页了。



相关文章推荐

用户用浏览器访问一个网站的时候背后的过程与步骤是怎样的?

作者:邱永臣叫西门追雪 链接:https://www.zhihu.com/question/20513729/answer/96332435 来源:知乎 著作权归作者所有。商业转载请联系作者获得...

Chrome浏览器模拟手机访问网站的设置方法

以前我们介绍过如何通过修改Chrome浏览器运行参数的方法来模拟手机访问网站,但是在Chrome 32和33版本以后增加了更加便捷的方法,在开发者工具中只需要设置一下就能方便的模拟各种手机型号的访问效...

Chrome 和 Firefox 浏览器可以访问微软更新目录网站啦!

导读 微软终于推出了一个新版本的更新目录网站(Update Catalog),让IE之外的浏览器也可以访问该网站。之前,Internet Explorer浏览器是唯一支持该网站的浏览器。从现在起,几乎...

浏览器访问网站

这个仅仅是我个人对于访问网站流程的一个理解,同时也是一个记录,我相信肯定有不全面也有错漏的地方,如果是的各位可以给我指出来让我可以有所提高~...

强制Chrome浏览器Https加密访问网站

强制Chrome浏览器加密访问网站其实也就是强制Chrome浏览器http重定向到https,这种技巧对于经常修改Hosts的网友可能用处较大些。比如修改Hosts后访问Twitter,多数情况下访问...

Chrome浏览器模拟手机访问网站的设置方法

Chrome浏览器模拟手机访问网站的设置方法 浏览:1003 | 更新:2014-06-04 10:25 | 标签: chrome      以前我们介...

Bat - 通过adb测试浏览器访问网站消耗的流量

通过adb测试浏览器访问网站消耗的流量 本博客原始于 http://blog.csdn.net/lys211 转载请注明出处。 ADB提供了非常丰富的命令来方便开发人员使...
  • lys211
  • lys211
  • 2015年06月19日 21:39
  • 1517

使用火狐浏览器监控网站访问慢的原因定位

使用火狐浏览器监控网站访问慢的原因定位
  • miner_k
  • miner_k
  • 2017年03月30日 13:01
  • 679

[Windows]_[网络]_[浏览器无法访问网站DNS_PROBE_POSSIBLE]

场景1.IE,Firefox浏览器访问不了网站, 谷歌浏览器可以, 返回错误码 DNS_PROBE_POSSIBLE.2.ping www.qq.com可以 ping通, ping局域网也可以ping...

我的浏览器收藏夹清单,经常访问的网站(200多个)

昨天写了“知识管理,浏览器收藏夹,经常访问的网站“,没有详细列举很多具体的网站。  有朋友对这个比较感兴趣,正好,我也想把资讯类等经常访问的网站,好好地整理下。  资讯类,是一个人“知识”的“源头活水...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:浏览器访问网站的过程
举报原因:
原因补充:

(最多只允许输入30个字)