几乎世界上所有的HTTP通信都是由TCP/IP承载的。TCP/IP作为全球计算机及网络设备都在使用的一种常用的分组交换网络分层协议集,是一种可靠的网络传输协议,其数据是通过名为IP分组(或者IP数据报)的小数据块进行发送的。所以HTTP连接实际上也就是TCP连接及其使用规则。HTTP要传送一条报文时,会以流的形式将报文数据的内容通过一条打开的TCP连接按序传输,TCP收到数据流之后,会将数据流砍成被称作段的小数据块,并将段封装在IP分组中,通过因特网进行传输,而这些繁杂的工作是由TCP/IP软件来处理的,对于HTTP的使用者来说不用关心这些底层的细节。
简单介绍一下IP分组。每个TCP段都是由IP分组承载,然后从一个IP地址发送到另一个IP地址的。每个IP分组中都包括:
- 一个IP分组首部(通常为20个字节),包含了源和目的IP地址、长度和其他一些标记;
- 一个TCP段首部(通常为20个字节),包含了TCP端口号、TCP控制标记以及用于数据排序和完整性检测的数字值;
- 一个TCP数据块(0或多个字节)。
HTTP网络协议栈由上到下:HTTP(应用层)---->TCP(传输层)---->IP(网络层)---->网络接口(数据链路层)。而HTTP的安全版本,即H