http网络基础


作者:李成文;
标签: 网络基础TCP/IP


TCP/IP

为了理解HTTP,首先先了解TCP/IP协议族,通常使用的网络是在TCP/IP协议族的基础上运作的,HTTP是属于它内部的一个子集。

TCP/IP协议族

计算机与网络设备要互相通信,双方就必须基于相同的方法。

如何探测到通信目标、由那一边向发起通信、使用哪种语言进行通信、怎样结束通信等规则都是需要事先确定,不同的硬件、操作系统之间的通信,所有的一切都需要一种规则。这种规则被称之为协议。

TCP/IP的分层管理

在TCP/IP的协议族中最重要的一点就是分层,TCP/IP协议族的层次分别分为以下的四层:

  1. 应用层
  2. 传输层
  3. 网络层
  4. 链路层

将TCP/IP层次化的好处是:当协议的某个地方需要变动时可以只需将变动层替换掉即可,将各个层之间的接口规划好之后,每个层次内部的设计就可以自由的改动。每个层只需要处理自己这个层的事情即可。

TCP/IP各个层的作用如下:

  • 应用层

    引用层决定了向用户提供应用服务时通信的活动。在TCP/IP协议族中预存了各类通用的应用服务如:FTP和DNS等服务。HTTP协议也处于这一层。

  • 传输层

    传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。
    在传输层有两个性质不同的协议:TCP(传输控制协议)和 UDP(用户数据报协议)。

  • 网络层(又名网络互连层)

    网络层用来处理网络上流动的数据包,数据包是网络传输的最小数据单位。该层规定了通过什么路径到达对方计算机,并把数据包传给对方。

  • 链路层(又名数据链路层,网络接口层)

    用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动。硬件上的范畴都在链路层的作用范围之内。

TCP/IP通信传输流

利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信。发送端从应用层-->传输层-->网络层-->链路层,接受端则从相反的方向走。

以http举例来说明:

  1. 首先作为发送端的客户端在应用层发出一个想看某个web页面的HTTP请求。
  2. 为了传输数据方便,在传输层把应用层处收到的数据(HTTP请求报文)进行分割,在各个报文上标记序号和端口号转发给网络层。
  3. 在网络层(IP协议),增加作为通信目的地的MAC地址后转发给链路层。这样发往网络的请求就准备齐全。
  4. 接收端的服务器在链路层接受到数据,会按照顺序往上层发送,一直到应用层。当传输到应用层,才算真正接收到由客户端发送过来的HTTP请求。
http网络基础_第1张图片
avatar

发送端在层和层之间传输数据时,每经过一层必定会被打上改层首部的信息。反之接收端在层与层之间传输数据时,每经过一层时会把对应的首部去掉。

IP、TCP和DNS

下面来了解一下与HTTP关系密切的三个协议(IP、TCP和DNS)

负责传输的IP协议

按层次分,IP网际协议位于网络层。

IP协议的作用是把各类数据包传送给对方,而要确保包确实传送到了对方那里,需要满足各类条件。其中两个重要的条件就是IP地址和MAC地址。

IP地址指明了节点被分配的地址,MAC地址是指网卡所属的固定地址。IP地址可以和MAC地址进行配对。IP地址可变换,但MAC地址基本不会更改。

使用ARP协议凭借MAC地址进行通信

IP间的通信依赖MAC地址,在网络上通信的双方在同一个局域网的情况很少,通常需要经过多台计算机和网络设备中转才能够连接到对方,在进行中转的时候,会利用下一站中转设备的MAC地址来搜索下一个中转目标。这个时候会采用ARP协议。ARP协议是一种用来解析地址的协议,根据通信方的ip地址可以反查出对应的MAC地址。这种机制称为路由选择。

确保可靠性的TCP协议

按层次分,TCP位于传输层,提供可靠的字节流服务。

字节流服务指的是:为了方便传输,将大块的数据分割以报文段为单位的数据包进行管理。而可靠的传输服务是指,能将数据准确可靠的传递给对方。

为了准确无误的将数据传递给目标,TCP协议采用了三次握手策略,握手过程中使用TCP的标志SYN和ACK。

发送端首先发送一个带有SYN标志的数据包给对方,接受端收到后,回传一个带有SYN/ACK标志的数据包以示传达确认信息。最后发送端再回传一个带有ACK标志的数据包,代表握手结束。

如果在握手过程中某个阶段莫名中断,TCP协议会再次以相同的顺序发送相同的数据包。

负责解析域名的DNS服务

DNS服务与HTTP协议一样位于应用层,它提供域名到IP地址之间的解析服务。

各种协议与HTTP协议之间的关系

了解了上面TCP/IP协议族中的各种协议之后,看一下在HTTP协议通信的过程中这些协议都发挥了那些作用。

http网络基础_第2张图片
avatar

URI和URL

URI:Uniform Resource Identifier (统一资源标识符)指的是:由某个协议方案表示的资源的定位标识符。协议方案指的是访问资源时所使用的协议类型名称。(采用HTTP协议时,协议方案就是http。除此之外还有ftp、file、telnet等。)
URL:Uniform Resource Locator,统一资源定位符;
URN:Uniform Resource Name,统一资源名称,它只包括名称不包括资源的协议。
URI可以被分为URL、URN或两者的组合,URL、URN是URI的子集。

URI格式

表示指的的URI,要使用涵盖所有必要信息的绝对URI、绝对URL以及相对URL。

下面是绝对URI的格式:

http网络基础_第3张图片
avatar

你可能感兴趣的:(http网络基础)