是基于 TCP 协议的 80 端口的一种 C/S 架构协议。
特点:无状态 --- 数据传输完成后,会断开 TCP 连接,哪怕浏览器还正常运行。
请求报文 --- 方法

响应报文 --- 状态码

是一种面向连接的可靠传输协议 。
面向连接 --- 在传输数据之前,收发双方先建立的一条逻辑上的通路。 ---> 进行参数协商 。
传输层 --- TCP 是在不可靠的 IP 层面之上来实现的一种可靠的数据传输协议。 ---> 有序传输、无丢失、
不重复、实现一种可靠传输行为 。
特点:
面向连接 --- 三次握手、四次挥手
提供可靠交付的服务。
每一条 TCP 连接都只能存在两个端点。 即点对点行为 。两端使用 套接字 (IP+ 端口 ) 来描述。
TCP 提供 全双工通信 ;
发送缓存
准备发送的数据
已经发送,但是没有收到确认的数据
接收缓存
按序到达,但未被应用程序读取的数据
乱序到达的数据
TCP 是 面向字节流 传输的协议; --- 以字节为单位 。 TCP 把应用程序交付下来的数据仅仅看做是一连
串无结构的字节流。

TCP 报文头部

序列号 :也是在标识报文的序号; 每个报文都必须包含序列号 。
序列号 = 上一个分组序列号 + 上个分组中传输的数据量 ;
能够帮助接收方进行数据排序。
确认序列号 :
通过确认序列号,来实现对数据的确认。
功能: 1. 代表接收方希望收到的下一个报文的序列号; 2. 代表该确认序列号之前的所有数据已
经收到 。
窗口大小 --- 指的是发送本报文的设备的接收窗口大小,即允许对方连续发送的数据量 。
紧急指针 --- 用来标记需要紧急处理的数据大小。
控制位 --- 标记位
紧急位 URG --- 代表此时的数据中,存在需要立即处理的数据,这部分数据不应该在缓存中排
队,需要立即处理,与紧急指针字段结合使用。
确认位 ACK --- 只有当 ACK=1 时,确认序列号才有意义 ; 在连接建立之后,所有传输的报文都
必须将 ACK 置位为 1 。
推送位 PSH --- 接收方应该尽快处理数据,不需要等待缓存填满等要求。
复位 RST
同步位 SYN --- 连接建立请求标志
终止位 FIN --- 连接释放标志,前提,本地数据传输完毕 。
在逐包确认机制中,发送方每发送一个数据,都需要等待接收方的确认报文,收到确认报文后,才
可以发送下一个报文信息,导致数据传输效率较低。而接收方只有将数据从接收缓存中提取给应用程序
处理后,才会发送确认报文 。