一次完整的http请求主要包含4步:
1. 输入域名,DNS(域名系统)进行域名解析,得到IP地址
2. 客户端和服务器通过三次握手建立连接
3. 连接建立之后,客户端将包装好的http请求传输到服务器,服务器处理后将数据返回给客户端
4. 客户端和服务器之间不再有数据传输后,发起四次挥手断开连接
* 三次握手:为了防止服务器开启一些无用的连接
1. 客户端发送syn=1告诉服务器需要联机,并发送一个随机生成的序列号seq=x
2. 服务器接收到消息,回复客户端syn=1和一个确认码ack=x+1,并发送一个随机生成的序列号seq=y
3. 客户端接受到消息,再次回复服务器一个确认码ack=y+1,并发送一个随机生成的序列号seq=z
* 四次挥手:由于数据传输是双向的,每个方向都必须单独进行关闭
1. 客户端发送fin=1告诉服务器断开连接,并发送一个随机生成的序列号seq=x
2. 服务器收到消息,回复客户端一个确认码ack=x+1,并发送一个随机生成的序列号seq=y,客户端进入等待状态
3. 服务器发送fin=1告诉客户端断开连接,并发送一个随机生成的序列号seq=z
4. 客户端收到消息,回复服务器一个确认码ack=z+1,并发送一个随机生成的序列号seq=r,断开连接