HTTP是无状态协议,它不对以前发生过的请求和响应的状态进行管理。也就是说,没法根据以前的状态进行本次的请求处理。假设要求登陆认证的Web页面自己没法进行状态的管理(不记录已登陆的状态),那么每次跳转新页面不是要再次登陆,就是要在每次请求报文中附加参数来管理登陆状态。服务器
不能否认,无状态协议固然也有它的优势。因为没必要保存状态,天然可减小服务器的CPU及内存资源的消耗。从另外一侧面来讲,也正是由于HTTP协议自己是很是简单的,因此才会被应用在各类场景里。spa
保留无状态协议这个特征的同时又要解决相似的矛盾问题,因而引入了Cookie技术。Cookie技术经过在请求和响应报文中写入Cookie信息来控制客户端的状态。Cookie会根据从服务器端发送的响应报文内的一个叫作Set-Cookie的首部字段信息,通知客户端保存 Cookie。当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入Cookie值后发送出去。服务器端发现客户端发送过来的Cookie后,会去检查到底是从哪个客户端发来的链接请求,而后对比服务器上的记录,最后获得以前的状态信息。内存
上图展现了发生Cookie交互的情景,HTTP请求报文和响应报文的内容以下:资源