客户端向服务器做请求时,发送的http请求信息被称为请求报文,头部信息被称为请求头
服务器回应客户端请求时,发送的http信息被称为回应报文,头部信息被称为响应头
回应信息中包含:1、状态行:包括内容:1、http版本,2、状态码,3、状态信息
2、消息头
3、实体内容
四次挥手:
1、当客户端想与服务端断开tcp连接时,会发送FIN报文,表示客户端已经没有数据要发送给服务端了
2、服务端收到后,会回应一个ACK报文,但是由于服务端向客户端可能有数据未发送完成,所以不会再此报文中加入FIN=1的信息
3、当服务端没有数据要发给客户端了,服务端就会向客户端发送FIN报文,请求断开连接
4、客户端收到后,回应一个ACK报文,表示同意断开
为什么断开连接需要四次
因为客户端向服务器发起断开请求时,服务端数据可能未发送完成,所以不能直接同意断开,但是根据tcp协议的规定,必须得回应客户端自己是否收到请求,所以会先单回应一个ACK报文,表示客户端的断开请求我已收到,等数据传输完成后,服务端再发送FIN报文请求断开。
为什么最后一次挥手后,客户端要等待2MSL
虽然客户端已经确认了服务端的断开请求,但是必须假设网络的不确定性,不能保证服务端一定能收到最后一个ACK,所以为了保证服务端可以正常关闭连接,客户端会等待2MSL的时间,如果服务器一直没回应,就说明服务器已经成功断开了。
TCP保活机制:
HTTP协议请求流程:(当在浏览器中输入地址,