探()一究

(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就不可以)

我要回帖

更多关于 探客 的文章

 

随机推荐