首先http的含义是超文本传输协议,他是基于tcp/ip协议的,通常使用的网络是在tcp/ip协议族的基础上运作的,而http属于他内部的一个子集。
1.1TCP/IP
TCP/IP是互联网相关的各类协议族的总称,在tcp/ip协议族里重要的一点就是分层,它按层次分别分为以下四层:应用层、传输层、网络层和数据链路层。
1.1.1 下面简述一下每一层的作用:
应用层:
应用层决定了向用户提供应用服务时通信的活动。
TCP/IP协议族内预存了各类通用的应用服务,比如,FTP(文件传输协议)和DNS(domain name system域名服务)服务就是其中的两类,http协议与处于该层。
传输层:
传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。
在传输层有两个性质不同的协议:TCP(传输控制协议),UDP(用户 数据报 协议)
网络层:
网络层用来处理在网络上流动的数据包,数据包是网络传输的最小数据单位,该层规定了通过怎样的路径到达对方的计算机,并把数据包传送给对方。
与对方计算机之间通过多台计算机或网络设备进行传输时,网络层所起的作用就是在众多的选项内选择一条传输路线。
链路层:
用来处理链接网络的硬件部分,包括控制操作系统、硬件的设备驱动、NIC(网卡)及光纤等物理课件的部分(还包括连接器等一切传输媒介)。硬件上的范畴均在链路层的作用范围之内。
1.1.2TCP/IP通信传输流
利用tcp/ip协议族进行网络通信时,会通过分层顺序与对方进行通信,发送端从应用层往下走,接收端则从链路层往应用层走。
我们用http举例来说明,首先作为发送端的客户在应用层发出一个想看某个web页面的http请求。
接着为了传输方便,传输层(tcp协议)把从应用层收到的数据(http请求报文)进行分割,并在每个报文上打上标记序号及端口号后转发给网络层。
在网络层(IP协议)增加作为通讯目的地的MAC地址后转发给链路层,这样一来发送网络通信请求就准备齐全了。
接收端的服务器在链路层接收到数据,按序往上层发送,一直到应用层。当传输到应用层,才能算真正接受到由客户端发送过来的HTTP请求。

发送端在曾与层之间传输数据时,每经过一层时必定会被打上一个该层所属的首部信息,反之接受层在曾与层传输数据时,没经过一层时会把对应的首部消去。
这种把数据信息包装起来的做法成为封装。
1.2与http关系密切的协议:IP、TCP和DNS
1.2.1 负责传输的IP协议
按层次分,IP网际协议位于网络层。Internet Protocol这个名称可能听起来有点夸张,但事实正是如此,因为几乎所有使用网络的系统都会用到IP协议,ICP/IP协议族中的IP指的就是网际协议,协议名称都会用到IP协议。TCP/IP协议族中的IP指的就是网际协议,协议名称中占据一半的位置,可见其重要。
IP协议的作用是把各种数据包传送给对方,而要保证确实传送到对方那里,则需要满足各类条件。其中两个重要的条件是IP和MAC地址
IP地址指明了节点被分配到的地址,MAC地址是指网卡所属的固定地址,IP地址和MAC地址进行配对。IP地址是可以变换,但是MAC地址基本上不会更改。
使用ARP协议凭借MAC地址进行通信,ARP是一种用以解析地址的协议,根据通信方的IP地址就可以反查出对应的Mac地址。

1.2.2 确保可靠行的TCP协议
按层次分,TCP属于传输层,提供可靠的字节流服务,即为了方便传输,将大块数据分割以报文段为单位的数据包进行管理,而可靠的传输服务是指,能够把数据准确可靠地传给对方,一言以蔽之,TCP协议为了更容易传送大数据才把数据分割,而且TCP协议能够确认数据最终是否送达到对方。
确保数据能送到到对方,TCP采用三次握手策略,TCP协议把数据包发送出去后,还会向对方确认是否送到成功。
握手过程中使用了TCP的标志(flag)--syn和ack。发送端首先发送一个带SYN标志的数据包给对方。接收端收到后,回传一个带有SYN/ACK标志的数据包以示传达确认信息,最后,发送端再回传一个带ACK标志的数据包,代表握手结束。
若在握手过程中某个阶段莫名终端,TCP协议会再次以相同的顺序发送相同的数据包。

1.3 负责域名解析的DNS服务
DNS服务和HTTP协议一样位于应用层的协议,他提供域名到IP地址之间的解析服务。
计算机既可以被赋予IP地址,也可以被赋予主机名和域名。

1.4 各种协议与HTTP协议的关系
学习了和HTTP协议密不可分的TCP/IP协议族中的各个协议后,我们在通过这张图来了解一下IP\TCP\DNS服务在使用HTTP协议的通信过程中各自发挥了哪些作用。

1.5 URL和URI
首先介绍概念,
URI,
请求报文是有请求方法、请求URI、协议版本、可选的请求首部字段和内容实体构成的。
响应报文基本上由协议版本、状态码(表示请求成功或失败的数字代码)、用以解释状态码的原因短语、可选的响应首部字段以及实体构成。
网友评论