用户在浏览网页时,主要经历的一个过程

用户在浏览网页时,主要经历的一个过程:

简称概况:找到目的地->进行连接->传输返回内容

假设用浏览器输入网址(如http://www.baidu.com),回车访问后

1、找到目的地:

找到目的地就是找到它的ip地址

如果网址是ip地址的话,就皆大欢喜,不用做任何操作

如果是域名,浏览器会先从host文件中获取到对应的IP地址,如果不能,就会使用DNS协议来获取IP地址

在DNS协议中,PC会向你的本地DNS服务器求助(一般是路由器),希望从本地DNS服务器那里得到网址的IP,得到就好,得不到还得向更高层次的DNS服务器求助。

2、进行连接
其实就是使用TCP协议,建立TCP连接

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

不过,建立TCP连接有个前提(或者说给服务器发消息有个前提):你必须能成功地把消息发到服务器上

为了将消息从你的PC上传到服务器上,需要用到IP协议、ARP协议和OSPF协议。

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

3、传输返回内容

用HTTP协议请求网页内容

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

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

你可能感兴趣的:(网络,网络,tcp,http)