(1)TCP三次握手连接
(2)第一个HTTP请求
# ACK报文告知客户端我已收到请求你可以准备接收我的数据了。
# 服务器返回的最后一个报文的部分HTTP报文(省略实体内容)
- HTTP报文太长了一个TCP段无法发送完,于是分成了n份n为多少呢?
- TCP客户端怎么知道TCP服务端分段发送已经完成?
- 服务器先返回ACK报文告知收到
- 接着正式发送分段的HTTP报文(每次都是ACK)
- 为什么HTTP请求时,发送的是PSH,ACK报文
- 因为只放ACK报文,服務器无法确认客户端是否发送完毕了
- 简而言之,PSH报文能够告知对方我已发送完毕,请处理
(5)第二个响应(图片)
# 具体报文(省略实体报文)
(6)省略TCP的4次挥手断开连接
- HTTP报文过长需要TCP分段传输
- 每佽HTTP请求或响应都需要设置PSH标志为1,用于标志HTTP请求或响应完成
- TCP的MSS由双方共同决定选择最小的值(如:1452 < 1460,所以为MSS)短板效应(防止处理速喥快的一方压垮慢的一方)
- HTTP首部很长,上述两次首部一次为239字节一次为238字节(HTTP2.0有改善,未来研究一下)
- HTTP1.1协议可以在一次TCP连接中,发送哆次HTTP报文(HTTP1.0就不可以)