TCP?HTTP学习记录
1、http协议建立连接时的三次握手
从抓包得以看出,http协议通过tcp建立连接。
在TCP层,有个FLAGS字段,这个字段在本次使用中可能用到的有以下几个标识:SYN, FIN, ACK, PSH, RST, URG。如下
其中,SYN表示建立连接,FIN表示关闭连接,ACK表示响应,PSH表示有DATA数据传输,RST表示连接重置。
第一次握手为客户端向服务器端发送请求,标志位(flags)为0x002(SYN)
弟二次握手为服务器向客户端发送应答,标志位为0x012(SYN,ACK),同时,应答序号为第一次序号加一。
第三次握手为客户端向服务器端发送应答,标志位为ACK,同时Sequence number 为服务器返回数据加一,
2.http协议断开连接
http协议断开连接时情况如下
可以看到,总共有4次握手,其中红色部分为服务器断开并重置连接。第二次握手ack为第一次传输的ack+1,第三次为同一端发送,seq为上一次减一,最后一次为另一端发送,seq为第二次发送的数据中ack
总结
http在建立连接和断开连接时均采用tcp传输,在建立连接时需要三次握手,断开连接时需要四次握手。