HTTP协议用于客户端和服务器之间的通信,请求访问文本或图像等资源的一端称为客户端,而提供资源响应的一端称为服务器端。
HTTP协议规定,请求从客户端发出,最后服务器端响应请求并返回。HTTP是无状态协议,自身不对请求和响应之间通信状态进行保存。
HTTP协议利用cookie技术通过在请求和响应报文中写入cookie信息来控制客户端的状态。
客户端第一次向服务器发送请求后,cookie会根据从服务器端发送的响应报文内的一个叫做set-cookie的首部字段信息,通知客户端保存cookie。当下次客户端再往该服务器端发送请求时会自动在请求报文中带上cookie值发送出去。服务器端发现客户端发送过来的cookie后,会去检查究竟是从哪个客户端发来的连接请求,然后对比服务器上的记录,最后得到之前的状态信息。
HTTP协议的初始版本中,每进行一次HTTP通信就要断开一次TCP连接,这样会造成无谓的TCP连接建立和断开,增加通信量的开销。为了解决此问题,HTTP/1.1想出了持久连接。持久连接的特点是,只要任意一端没有明确提出断开连接,则保持TCP连接状态。