HTTP请求在网络中的详细过程

来源:互联网 发布:海康网络摄像机键盘 编辑:程序博客网 时间:2024/06/05 09:59

当在浏览器中输入一个URL:www.baidu.com,或者鼠标点击了一个超链接时,在网络中所发生的事件解析如下。

1、首先,浏览器解析这个URL或超链接。

2、浏览器向本地DNS服务器发出请求,请求解析www.baidu.com对应的IP地址。

DNS解析的过程:

(1)主机向本地域名服务器的查询一般采用递归查询:如果主机所询问的本地域名服务器不知道被查询的IP地址,那么本地域名服务器就以DNS客户的身份,向其他根域名服务器继续发出查询请求(即代替该主机继续查询),而不是让主机自己进行下一步查询。因此,递归查询的结果后者是所要查询的IP地址,或者报错(表示无法查询到所需的IP地址)。

(2)本地域名服务器向根域名服务器的查询通常是迭代查询(也可以用递归查询,这取决于最初的查询请求报文的设置是要求使用哪一种查询方式)。迭代查询的方式是:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么返回所要查询的IP地址,要么告诉本地域名服务器:“下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询(而不是代替本地域名服务器进行查询)。根域名服务器通常把自己知道的顶级域名服务器的IP告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询。顶级域名服务器在收到本地域名服务器的查询请求后,要么给出查询的IP地址,要么告诉本地域名服务器下一步应当向哪一个权限域名服务器进行查询。本地域名服务器就这样进行迭代查询。最后,知道了所要解析的域名IP地址,然后把这个结果返回给发起查询的主机。

3)为了提高DNS的查询效率并减轻根域名服务器的负荷和减少因特网上的DNS查询报文数量,在域名服务器中广泛使用高速缓存(有时也称为高速缓存域名服务器)。高速缓存用来存放最近查询过的域名以及从何处获得域名映射信息的记录。

3、域名系统DNS解析出www.baidu.com对应的IP地址。

4、浏览器与百度的相应web服务器建立TCP连接(利用的是DNS解析出的IP地址以及http的端口号80)。

5、连接建立成功后,开始向web服务器发送请求,这个请求一般是GET或POST方式。GET命令的格式为:GET 路径/文件名 HTTP/1.1。

6、web服务器响应请求,接收到这个请求后,进行处理。

7、当数据传输完或者完成了请求,释放TCP连接。


具体分析数据包在网络中漫游的过程:

计算机网络采用分层的结构,在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。要实现本层协议,还需要使用下一层所提供的服务。

网络分层的好处:

(1)设想进行文件传输,需要有通信服务模块,来保证文件和文件传送命令可靠地在两个系统之间交换;还需要一个网络接入模块,让这个模块负责做与网络接口细节相关的工作。我们并不想让文件传输模块完成全部工作的细节,这样会使得文件传输模块过于复杂。分层可以将上述需要的几个模块分开,使得文件传输模块简洁、可靠。

(2)各层之间是独立的。某一层不需要知道它的下一层是如何实现的,而仅仅需要知道该层通过层间的接口所提供的服务。由于每一层只实现一种相对独立的功能,因而可将一个难以处理的复杂问题分解成若干个较容易处理的更小的一些问题。这样,整个问题的复杂度就降低了。

(3)灵活性好。当任何一层发生变化时(例如技术的变化),只要层间接口关系保持不变,则其他层不受影响

(4)结构上可分割。每一层都可以使用最合适的技术实现。

(5)易于实现和维护。这种结构使得实现和调试一个庞大而复杂的系统变得易于处理,因为整个系统被分解为若干相对独立的子系统。

(6)能够促进标准化工作。因为每层的功能和所提供的服务都已经有了精确的说明。


应用层

应用层是体系结构中最高层。它直接为用户的应用进程提供服务。因特网的应用层协议很多,每个协议都是为了解决某一类应用问题。应用层用TCP传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一连串的比特流送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息)。


传输层

负责向两个主机中进程之间的通信提供服务,为应用进程之间提供端到端的逻辑通信。

传输控制协议TCP面向连接,数据传输单位是报文段,提供可靠交付。将应用程序交付的数据分为适合的小块交付给下面的应用层,确认接收到的分组,设置发送最后确认分组的超时时钟等。用户数据报协议UDP,无连接的,传输单位是用户数据包,不提供可靠交付,任何必须的可靠性必须由应用层提供。

设备:网络层以上的设备称为:网关。


网络层

负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把传输层产生的报文段或用户数据报封装成包(packet)进行传输处理分组在网络中的活动。网络层协议包括网际协议IP、网际控制报文协议ICMP、网际组管理协议IGMP、地址解析协议ARP、逆地址解析协议RARP。

网络层开始负责将这样的数据包在网络上传输,如何穿过路由器,最终到达目的地址。在这里,根据目的ip地址,就需要查找下一跳路由的地址。
分组转发算法过程
(1)从数据报的首部提取目的IP地址D,根据目的地址,得到目的网络号N。

(2)如果N就是与此路由直接相连的某个网络地址,则进行直接交付,不需要再经过其他的路由,直接把数据报交付给目的主机(这里包括把目的主机地址D转换为具体的硬件地址,把数据报封装成MAC帧,再转发此帧);否则进行间接交付,执行(3)。

(3)若路由表中有目的地址D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)。

(4)若路由表中有到达网络N的路由,则把数据报传送给路由表中所指明的下一跳路由器,否则,执行(5)。

(5)若路由表中有一个默认路由,则把数据传送给路由表中所指明的默认路由器;否则,执行(6);

(6)报告转发分组出错。

设备:路由器。


数据链路层

在两个相邻结点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧,在两个相邻结点间透明地传送帧中的数据。设备:网桥、桥接器。


物理层

传输数据的单位是比特,透明地传送比特流。物理层要考虑用多大的电压表示1或0,以及接收方如何识别发送方所发送的比特。物理层还有确定连接电缆的插头应当有多少根引脚以及各引脚应如何连接。设备:转发器。


参考:http://www.cnblogs.com/xiaoliyu/archive/2009/10/15/1583921.html

0 0
原创粉丝点击